一文了解如何用Notepad++編譯C/C++

一文了解如何用Notepad++編譯C/C++

一. 前情

平時用的 ide(集成開發環境)是 Dev-Cpp,因為只是學習階段,代碼還上不了千行,個人認為不需要 VS 那種高大全,VC6.0 又有些地方(不只是審美)不順眼。

但最近又發現當把 c++ 代碼文件復制到 ubuntu 18.04 編譯運行時,漢字部分總會亂碼,因為encoding(字符編碼)的問題,Ubuntu只認UTF-8,windows只認ANSI,Ubtuntu雖然我能讓vim顯示ANSI,卻做不到讓終端顯示,而Windows 上的 Dev-Cpp 不能設置encoding為 UTF-8,所以想改用 Notepad++ 這個 Editor(編輯器)增加 Compiler (編譯器)的功能。

環境:win7。Notepad++。Dev-Cpp。

立即學習C++免費學習筆記(深入)”;

二. 步驟

1. 配置編譯器

官網下載安裝MinGW

change:

一文了解如何用Notepad++編譯C/C++

選中“mingw32-gcc-g++-bin”的“mark for installation”,選擇右上角“Installation”的“Apply Changes”即可。另外幾項我沒安裝的時候也沒什么問題,后來出了點別的問題,求保險才裝的。總共裝了不到 400MB。

相關推薦:《官網下載安裝MinGW

2. 編輯環境變量

一文了解如何用Notepad++編譯C/C++

控制面板所有控制面板項系統,高級系統設置→環境變量,在“Administrator 的用戶變量”欄找 PATH 變量,無則新建,有則編輯,變量名為“PATH”,變量值在原有的基礎上增加一條“C:MinGWbin;”,該值與每個人把 MinGW 安裝的位置有關,因人而異。“;”的意義在于當 PATH 的值有多項時,用它把這些項分開。

3. 兩種方法檢查前兩步是否成功

一文了解如何用Notepad++編譯C/C++

進入 cmd 控制臺,輸入gcc -v或g++ -v查看已加入到環境變量中的編譯器版本。顯示黃框中的內容屬于正常,說明前兩步成功。

創建一個簡單的 C++ 源代碼文件,要保證代碼正確能運行。例如 Hello.cpp:

//Hello.cpp #include<iostream>?? using?namespace?std; int?main() { ????cout<p>在 cmd 控制臺 cd 到該源代碼的目錄,然后執行g++ Hello.cpp -o Hello.exe,然后執行Hello.exe /k命令,能正常運行也能說明前兩大步沒問題。</p> <p>前一條命令是用 g++ 編譯器編譯這個源代碼并輸出 exe 文件到這個目錄,后一條是運行 exe 文件(/k 參數使其運行后停留在程序界面,與之相對的 /c 會使其關閉。即 keep 與 close 的對比)。前面兩條命令其實可以用“&amp;&amp;”合為一條,即g++ Hello.cpp -o &amp;&amp; Hello.exe Hello.exe /k。</p> <p>到這里已經成功一大半了,因為如你所見,已經可以在 cmd 控制臺編譯并運行源代碼了,而賦予 Notepad++ 這個能力,只是讓 Notepad++ 一步“對當前打開的源文件用 cmd 執行編譯、運行命令”而已。</p> <p><strong>4. Notepad++ 增加運行命令</strong></p> <p>打開 Notepad++,按 F5 調出“運行”。復制后面說到的命令,運行即可,建議保存,名稱隨意。</p> <p><img src="https://img.php.cn/upload/image/360/513/354/1565762579388988.png" title="1565762579388988.png" alt="1565762452(1).png"></p> <p>也可以在工具欄中找“運行(R)”</p> <p>參考了多個關于 Notepad++ 運行命令和 cmd 命令的資料,經修改后我的命令是cmd /k pushd "$(CURRENT_DIRECTORY)" &amp;&amp; g++ -o "$(NAME_PART).exe" "$(FULL_CURRENT_PATH)" &amp;&amp; "$(NAME_PART)".exe &amp; PAUSE &amp; EXIT(無分行,是一整條命令),要理解這條命令的話可以將其一分為六,即:</p> <p>(1)cmd /k:打開 cmd 控制臺,運行完程序讓其停留而不自動關閉。</p> <p>(2)pushd "$(CURRENT_DIRECTORY)":將工作路徑更換到源文件所在的路徑,例如'pushd E:kkk'相當于 cmd 中先e:再cd kkk,這條命令在源代碼要調用同目錄文件而只寫了相對路徑時尤為重要。因為 Notepad++ 的默認工作路徑是它自己的安裝路徑。</p> <p>(3)g++ -o "$(NAME_PART).exe" "$(FULL_CURRENT_PATH)":調用環境變量中的編譯器 g++.exe 來將源代碼編譯成同名 exe 文件并輸出到相同路徑。</p> <p>(4)"$(NAME_PART)".exe:運行源代碼編譯出的可執行文件。</p> <p>(5)PAUSE:暫停,提示“按任意鍵繼續”,配合下一條命令實現“按任意鍵關閉”的效果,兩者都沒有的話程序運行完就會秒關。</p> <p>(6)EXIT:關閉 cmd 控制臺,沒有的話按任意鍵會退到 cmd 命令臺,等待輸入下一條命令。</p> <p><strong>·</strong>$(CURRENT_DIRECTORY)代表文件所在目錄的路徑。</p> <p><strong>·</strong>$(NAME_PART)表示該文件無后綴部分的文件名。</p> <p><strong>·</strong>$(FULL_CURRENT_PATH)代表當前完整的文件路徑。</p> <p><strong>·</strong>雙引號(半角):用于防止目錄或文件名中含空格的情況。</p> <p><strong>·</strong>“&amp;&amp;”和“&amp;”:前者表示上一條命令正常執行完再執行下一條命令,非正常則不執行下一條;后者無顧慮。例如一分為六后的后兩條子命令,表示不管源代碼編譯、運行是否成功,都會出現“按任意鍵繼續”字樣,并且按任意鍵后關閉 cmd 控制臺。</p> <p><strong>三. 后續</strong></p> <p>折騰了接近半天后,發現和 Ubuntu 一樣,只是讓編輯器能顯示 UTF-8,卻做不到控制臺顯示。也就是 Notepad++ 能顯示 UTF-8/ANSI,但運行后 cmd 控制臺還是只認 ANSI。</p></iostream>

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享