notpad++ 搭配 gcc

notpad++ 搭配 gcc

GCC 是 GNU 编译器套装的简称(GNU Compiler Collection),一套编程语言编译器,以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU 项目的关键部分,也是 GNU 工具链的主要组成部分之一。GCC(特别是其中的 C 语言编译器)也常被认为是跨平台编译器的事实标准。

由于 GCC 适用于 Linux/UNIX 系统,Windows 系统本身不支持 GCC,所以就有了 MinGW 的诞生,MinGW 是把 GNU 从 Linux/UNIX 到 Windows 的移植应用。

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 的由来。

MinGW-W64 是同时支持 32 位和 64 位的。甚至还支持 32 位和 64 位的交叉编译(启用 multilib 支持的 MinGW 发行版例如 mingw-builds 可以用 -m32 或 -m64 指定)。

下载安装 MinGW-w64

MinGW-w64 下载地址。这里下载的是在线安装包,安装前能自己选择参数,安装过程需要联网。建议选择的参数如下图所示,之后一路 next 就行了。

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 离线安装包下载地址

添加环境变量

按下图配置的是当前用户的环境变量,如果是要为所有用户配置环境变量就在系统变量中添加。

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 的内置变量,上网搜搜还有类似的变量可以在脚本中使用。

参考文章

posted @ 2019-01-24 10:40  suanite  阅读(628)  评论(0编辑  收藏  举报