notpad++ 搭配 gcc

notpad++ 搭配 gcc

GCC 是 GNU 編譯器套裝的簡稱(GNU Compiler Collection),一套編程語言編譯器,以 GPL 及 LGPL 許可證所發行的自由軟件,也是 GNU 項目的關鍵部分,也是 GNU 工具鏈的主要組成部分之一。GCC(特別是其中的 C 語言編譯器)也常被認爲是跨平臺編譯器的事實標準。html

因爲 GCC 適用於 Linux/UNIX 系統,Windows 系統自己不支持 GCC,因此就有了 MinGW 的誕生,MinGW 是把 GNU 從 Linux/UNIX 到 Windows 的移植應用。shell

MinGW, a contraction of "Minimalist GNU for Windows", is a minimalist development environment for native Microsoft Windows applications.編程

這是 MinGW 的官方解釋,MinGW 是「Minimalist GNU for Windows」的縮寫,是很是簡潔 Microsoft Windows 應用開發環境。因爲 MinGW 只支持 32 位,如今 MinGW-W64 的主要維護者 Kai Tietz 由於工做須要他想 MinGW 提供擴充 x64 支持,但對方態度很不友好。因而憤而 fork 出來,這就是 MinGW-W64 的由來。windows

MinGW-W64 是同時支持 32 位和 64 位的。甚至還支持 32 位和 64 位的交叉編譯(啓用 multilib 支持的 MinGW 發行版例如 mingw-builds 能夠用 -m32 或 -m64 指定)。架構

下載安裝 MinGW-w64

MinGW-w64 下載地址。這裏下載的是在線安裝包,安裝前能本身選擇參數,安裝過程須要聯網。建議選擇的參數以下圖所示,以後一路 next 就好了。app

kmY201.png

開始的 i686,x86_64 好理解,表明適用的處理器架構,i686 表明是 32 位處理器,x86_64 則表明 64 位處理器。posix 則表明線程模式 (threading model),windows 下還有另外一種線程模式 win32。i686 前綴的版本確定能夠編譯 32 位程序,可是可否編譯 64 位程序則取決於編譯器版本所用的異常實現模型 seh,sjlj。編程語言

  • sjlj 適合 32/64 位程序 (可是它會帶來輕微的性能損失, 在異常重的代碼中有 15%)
  • seh 只能用於 64 位程序

經過離線安裝包來安裝 MinGW-w64

在線安裝須要聯網纔有用,我仍是喜歡下載離線安裝包。下載後解壓再添加環境變量就能夠了。工具

MinGW 離線安裝包下載地址性能

添加環境變量

按下圖配置的是當前用戶的環境變量,若是是要爲全部用戶配置環境變量就在系統變量中添加。ui

kmYRTx.png

kmYhtK.md.png

在命令提示符(cmd) 中分別輸入 gcc,以下則說明安裝成功

C:\Users\82665> gcc
gcc.exe: fatal error: no input files
compilation terminated.

nppExec 插件編譯運行 gcc

下載 nppExec 插件,解壓將文件拷貝到 Notepad++\plugins 下,重啓 notepad++。

kmY4fO.png

勾選「Show Console」、「No internal messages」、「Save all files on execute」、「Follow $(CURRENT_DIRECTORY)」。而後點擊 Plugins->NppExec->Execute,輸入腳本。

gcc $(FILE_NAME) -o $(NAME_PART).exe
./$(NAME_PART).exe

而後點擊 save,名字爲「run gcc」。

進入 NppExec->Advanced Options 裏,而後在左下方 Associated script 選擇咱們以前的「run gcc」,Add/Modify 而後 OK。

配置快捷鍵

進入 Setting->Shortcut Mapper,在 Plugin commands 面板,雙擊填寫快捷鍵。咱們把上面的「run gcc」填寫爲 Ctrl+R。

而後去咱們的程序中按 Ctrl+R 就會運行這個 C/C++ 文件,以上就是全部的步驟。

其中,$(FILE_NAME)$(NAME_PART) 都是 Notepad 的內置變量,上網搜搜還有相似的變量能夠在腳本中使用。

參考文章

相關文章
相關標籤/搜索