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

一. 前情

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

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

環(huán)境:win7。Notepad++。Dev-Cpp。

二. 步驟

1. 配置編譯器

官網下載安裝MinGW

change:

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

2. 編輯環(huán)境變量

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

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

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

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

//Hello.cpp

#include<iostream>?

using namespacestd;

int main()

{

????cout<<"Hello world, 世界你好!"<<endl;

????return0;?

}

在 cmd 控制臺 cd 到該源代碼的目錄,然后執(zhí)行g++ Hello.cpp -o Hello.exe,然后執(zhí)行Hello.exe /k命令,能正常運行也能說明前兩大步沒問題。

前一條命令是用 g++ 編譯器編譯這個源代碼并輸出 exe 文件到這個目錄,后一條是運行 exe 文件(/k 參數(shù)使其運行后停留在程序界面,與之相對的 /c 會使其關閉。即 keep 與 close 的對比)。前面兩條命令其實可以用“&&”合為一條,即g++ Hello.cpp -o && Hello.exe Hello.exe /k。

到這里已經成功一大半了,因為如你所見,已經可以在 cmd 控制臺編譯并運行源代碼了,而賦予 Notepad++ 這個能力,只是讓 Notepad++ 一步“對當前打開的源文件用 cmd 執(zhí)行編譯、運行命令”而已。

4. Notepad++ 增加運行命令

打開 Notepad++,按 F5 調出“運行”。復制后面說到的命令,運行即可,建議保存,名稱隨意。

也可以在工具欄中找“運行(R)”

參考了多個關于 Notepad++ 運行命令和 cmd 命令的資料,經修改后我的命令是cmd /k pushd "$(CURRENT_DIRECTORY)" && g++ -o "$(NAME_PART).exe" "$(FULL_CURRENT_PATH)" && "$(NAME_PART)".exe & PAUSE & EXIT(無分行,是一整條命令),要理解這條命令的話可以將其一分為六,即:

(1)cmd /k:打開 cmd 控制臺,運行完程序讓其停留而不自動關閉。

(2)pushd "$(CURRENT_DIRECTORY)":將工作路徑更換到源文件所在的路徑,例如'pushd E:\kkk'相當于 cmd 中先e:再cd kkk,這條命令在源代碼要調用同目錄文件而只寫了相對路徑時尤為重要。因為 Notepad++ 的默認工作路徑是它自己的安裝路徑。

(3)g++ -o "$(NAME_PART).exe" "$(FULL_CURRENT_PATH)":調用環(huán)境變量中的編譯器 g++.exe 來將源代碼編譯成同名 exe 文件并輸出到相同路徑。

(4)"$(NAME_PART)".exe:運行源代碼編譯出的可執(zhí)行文件。

(5)PAUSE:暫停,提示“按任意鍵繼續(xù)”,配合下一條命令實現(xiàn)“按任意鍵關閉”的效果,兩者都沒有的話程序運行完就會秒關。

(6)EXIT:關閉 cmd 控制臺,沒有的話按任意鍵會退到 cmd 命令臺,等待輸入下一條命令。

·$(CURRENT_DIRECTORY)代表文件所在目錄的路徑。

·$(NAME_PART)表示該文件無后綴部分的文件名。

·$(FULL_CURRENT_PATH)代表當前完整的文件路徑。

·雙引號(半角):用于防止目錄或文件名中含空格的情況。

·“&&”和“&”:前者表示上一條命令正常執(zhí)行完再執(zhí)行下一條命令,非正常則不執(zhí)行下一條;后者無顧慮。例如一分為六后的后兩條子命令,表示不管源代碼編譯、運行是否成功,都會出現(xiàn)“按任意鍵繼續(xù)”字樣,并且按任意鍵后關閉 cmd 控制臺。

三. 后續(xù)

折騰了接近半天后,發(fā)現(xiàn)和 Ubuntu 一樣,只是讓編輯器能顯示 UTF-8,卻做不到控制臺顯示。也就是 Notepad++ 能顯示 UTF-8/ANSI,但運行后 cmd 控制臺還是只認 ANSI。

本文轉自:https://www.php.cn/tool/notepad/428455.html

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 一. 前情 ??想找Notepad++運行命令的可以直接跳到最后。??平時用的 IDE(集成開發(fā)環(huán)境)是 Dev-...
    胡同口的蛙閱讀 11,589評論 5 6
  • 第一章:編譯和安裝SCons第二章:簡單編譯第三章:編譯相關的一些事情第四章:編譯和鏈接庫文件第五章:節(jié)點對象第六...
    仙靈兒閱讀 12,356評論 0 3
  • win7 cmd管理員權限設置 net localgroup administrators 用戶名 /add 把“...
    f675b1a02698閱讀 5,522評論 0 11
  • 個人學習批處理的初衷來源于實際工作;在某個迭代版本有個BS(安卓手游模擬器)大需求,從而在測試過程中就重復涉及到...
    Luckykailiu閱讀 4,995評論 0 11
  • Notepad++是一套為自由軟件的純文本編輯器,它可以用來編譯多種語言。本文主要講述如何在Notepad++上配...
    uubs閱讀 7,718評論 1 5

友情鏈接更多精彩內容