首頁 開發工具 Notepad 一文了解如何用Notepad++編譯C/C++

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

Aug 14, 2019 pm 02:15 PM
c c++ notepad++ 編譯

一文了解如何用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。

二.步驟

1. 設定編譯器

官網下載安裝MinGW

change:

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

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

相關推薦:《Notepad 使用圖文教學

#2. 編輯環境變數

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

##控制面板\所有控制面板項目\系統,進階系統設定→環境變量,在“Administrator 的使用者變數”欄位找PATH 變量,無則新建,有則編輯,變數名為“PATH”,變數值在原有的基礎上增加一條“C:\MinGW\bin;”,該值與每個人把MinGW 安裝的位置有關,因人而異。 「;」的意義在於當 PATH 的值有多項時,用它把這些項分開。

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

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

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

建立一個簡單的 C 原始碼文件,要確保程式碼正確能運作。例如Hello.cpp:

//Hello.cpp
#include<iostream>  
using namespace std;
int main()
{
    cout<<"Hello world, 世界你好!"<<endl;
    return 0;  
}
登入後複製

在cmd 控制台cd 到該原始碼的目錄,然後執行g Hello.cpp -o Hello.exe,然後執行Hello.exe /k指令,能正常運作也能說明前兩大步沒問題。

前一條指令是用g 編譯器編譯這個原始碼並輸出exe 檔到這個目錄,後一條是執行exe 檔(/k 參數使其運行後停留在程式介面,與之相對的/ c 會使其關閉。即keep 與close 的對比)。前面兩個指令其實可以用「&&」合為一條,也就是g Hello.cpp -o && Hello.exe Hello.exe /k。

到這裡已經成功一大半了,因為如你所見,已經可以在cmd 控制台編譯並運行源代碼了,而賦予Notepad 這個能力,只是讓Notepad 一步“對當前打開的源文件用cmd 執行編譯、執行指令」而已。

4. Notepad 增加執行指令

開啟 Notepad ,按 F5 調出「執行」。複製後面說到的命令,運行即可,建議保存,名稱隨意。

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

也可以在工具列中找「執行(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 控制台。

三. 後續

折騰了接近半天后,發現和 Ubuntu 一樣,只是讓編輯器能顯示 UTF-8,卻做不到控制台顯示。也就是 Notepad 能顯示 UTF-8/ANSI,但執行後 cmd 控制台還是只認 ANSI。

以上是一文了解如何用Notepad++編譯C/C++的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在C++中實現策略設計模式? 如何在C++中實現策略設計模式? Jun 06, 2024 pm 04:16 PM

策略模式在C++中的實作步驟如下:定義策略接口,聲明需要執行的方法。建立具體策略類,分別實作該介面並提供不同的演算法。使用上下文類別持有具體策略類別的引用,並透過它執行操作。

在Docker環境中使用PECL安裝擴展時為什麼會報錯?如何解決? 在Docker環境中使用PECL安裝擴展時為什麼會報錯?如何解決? Apr 01, 2025 pm 03:06 PM

在Docker環境中使用PECL安裝擴展時報錯的原因及解決方法在使用Docker環境時,我們常常會遇到一些令人頭疼的問�...

char在C語言字符串中的作用是什麼 char在C語言字符串中的作用是什麼 Apr 03, 2025 pm 03:15 PM

在 C 語言中,char 類型在字符串中用於:1. 存儲單個字符;2. 使用數組表示字符串並以 null 終止符結束;3. 通過字符串操作函數進行操作;4. 從鍵盤讀取或輸出字符串。

如何處理跨執行緒的C++異常? 如何處理跨執行緒的C++異常? Jun 06, 2024 am 10:44 AM

在多執行緒C++中,例外處理透過std::promise和std::future機制實作:在拋出例外的執行緒中使用promise物件記錄例外。在接收異常的執行緒中使用future物件檢查異常。實戰案例顯示如何使用promise和future在不同執行緒中捕捉和處理異常。

c語言多線程的四種實現方式 c語言多線程的四種實現方式 Apr 03, 2025 pm 03:00 PM

語言多線程可以大大提升程序效率,C 語言中多線程的實現方式主要有四種:創建獨立進程:創建多個獨立運行的進程,每個進程擁有自己的內存空間。偽多線程:在一個進程中創建多個執行流,這些執行流共享同一內存空間,並交替執行。多線程庫:使用pthreads等多線程庫創建和管理線程,提供了豐富的線程操作函數。協程:一種輕量級的多線程實現,將任務劃分成小的子任務,輪流執行。

c上標3下標5怎麼算 c上標3下標5算法教程 c上標3下標5怎麼算 c上標3下標5算法教程 Apr 03, 2025 pm 10:33 PM

C35 的計算本質上是組合數學,代表從 5 個元素中選擇 3 個的組合數,其計算公式為 C53 = 5! / (3! * 2!),可通過循環避免直接計算階乘以提高效率和避免溢出。另外,理解組合的本質和掌握高效的計算方法對於解決概率統計、密碼學、算法設計等領域的許多問題至關重要。

C  中releasesemaphore的用法 C 中releasesemaphore的用法 Apr 04, 2025 am 07:54 AM

C 中 release_semaphore 函數用於釋放已獲得的信號量,以便其他線程或進程訪問共享資源。它將信號量計數增加 1,允許阻塞的線程繼續執行。

蛇形命名法在C語言中如何應用? 蛇形命名法在C語言中如何應用? Apr 03, 2025 pm 01:03 PM

C語言中蛇形命名法是一種編碼風格約定,使用下劃線連接多個單詞構成變量名或函數名,以增強可讀性。儘管它不會影響編譯和運行,但冗長的命名、IDE支持問題和歷史包袱需要考慮。

See all articles