一.前情
平時用的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。
推薦教學:notepad 使用教學
##1. 設定編譯器
change:
# # 選中“mingw32-gcc-g -bin”的“mark for installation”,選擇右上角“Installation”的“Apply Changes”即可。另外幾項我沒安裝的時候也沒什麼問題,後來出了點別的問題,求保險才裝的。總共裝了不到 400MB。
相關推薦:《Notepad 使用圖文教學
》#2. 編輯環境變數
## 控制面板\所有控制面板項目\系統,高級系統設定→環境變量,在“Administrator 的用戶變量”欄找PATH 變量,無則新建,有則編輯,變量名為“PATH”,變量值在原有的基礎上增加一條“C:\MinGW\bin;”,該值與每個人把MinGW 安裝的位置有關,因人而異。 「;」的意義在於當 PATH 的值有多項時,用它把這些項分開。
3. 兩個方法檢查前兩步驟是否成功 # 進入cmd 控制台,輸入gcc -v或g - v查看已加入環境變數中的編譯器版本。顯示黃框中的內容屬於正常,說明前兩步驟成功。建立一個簡單的 C 原始碼文件,要確保程式碼正確能運作。例如Hello.cpp:
//Hello.cpp #include<iostream> using namespace std; int main() { cout<<"Hello world, 世界你好!"<<endl; return 0; }
到這裡已經成功一大半了,因為如你所見,已經可以在cmd 控制台編譯並運行源代碼了,而賦予Notepad 這個能力,只是讓Notepad 一步“對當前打開的源文件用cmd 執行編譯、執行指令」而已。
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)":呼叫環境變數中的編譯器g .exe 來將原始程式碼編譯成同名exe 檔案並輸出到相同路徑。
(4)"$(NAME_PART)".exe:執行原始碼編譯出的執行檔。
(5)PAUSE:暫停,提示“按任意鍵繼續”,配合下一條命令實現“按任意鍵關閉”的效果,兩者都沒有的話程序運行完就會秒關。
(6)EXIT:關閉 cmd 控制台,沒有的話按任一鍵會退到 cmd 指令台,等待輸入下一指令。
·$(CURRENT_DIRECTORY)代表檔案所在目錄的路徑。
·$(NAME_PART)表示該檔案無後綴部分的檔案名稱。
·$(FULL_CURRENT_PATH)代表目前完整的檔案路徑。
·雙引號(半角):用來防止目錄或檔案名稱中含空格的情況。
·「&&」與「&」:前者表示上一條指令正常執行完再執行下一條指令,非正常則不執行下一條;後者無顧慮。例如一分為六後的後兩個子命令,表示不管原始碼編譯、執行是否成功,都會出現「按任意鍵繼續」字樣,並且按任意鍵後關閉 cmd 控制台。
以上是怎麼用notepad編譯c語言的詳細內容。更多資訊請關注PHP中文網其他相關文章!