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 就行了。

开始的 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
在线安装需要联网才有用,我还是喜欢下载离线安装包。下载后解压再添加环境变量就可以了。
添加环境变量
按下图配置的是当前用户的环境变量,如果是要为所有用户配置环境变量就在系统变量中添加。


在命令提示符(cmd) 中分别输入 gcc,如下则说明安装成功
C:\Users\82665> gcc
gcc.exe: fatal error: no input files
compilation terminated.
nppExec 插件编译运行 gcc
下载 nppExec 插件,解压将文件拷贝到 Notepad++\plugins 下,重启 notepad++。

勾选「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 的内置变量,上网搜搜还有类似的变量可以在脚本中使用。
参考文章
notpad++ 搭配 gcc的更多相关文章
- 有关 GCC 及 JNA 涉及动态库/共享库时处理库文件名的问题
动态库尤其是共享库在 Linux 环境下普遍存在库文件名包含版本号的情况,比如 Linux 环境下经常会发现一个共享库的真实文件名是 libfoo.so.1.1.0,而同时会有多个指向该真实库文件的软 ...
- GNU Binutils简介及基本用法
[时间:2017-06] [状态:Open] [关键词:GNU, binutils, as, ld, ar, 基础工具,linux,链接器,汇编器] 0 简介 GNU Binary Utilities ...
- Mac 下的 C++ 开发环境
1. Xcode 创建 C++ 项目 Xcode (版本 4.6.3)默认支持创建 C++ 项目,步骤很简单:打开 Xcode,新建一个项目:在 OS X 中的 Application 中选择 Com ...
- C/C++编程可用的Linux自带工具
GNU Binary Utilities或binutils是一整套的编程语言工具程序,用来处理许多格式的目标文件.当前的版本原本由在Cygnus Solutions的程序员以Binary File D ...
- 快速认识LinkIt 7697开发板
LinkIt 7697是一款多功能且价格亲民的开发板,可用来连接网络或你的各项装置,同时提供Wi-Fi及蓝芽两种联机功能.此开发板采用MediaTek MT7697芯片,比起其他类似的Wi-Fi/蓝芽 ...
- 开发纯ndk程序之环境搭配
安装ndk 从安卓官网下载,ndk,双击解压到当前文件夹.建议想装在那个文件夹便解压到那个文件夹,而且文件夹的路径中不要有空格,因为gcc编译的时候会把空格前后两个字符串作为两个文件夹来对待. 使用g ...
- 修改gcc/g++默认include路径
修改gcc/g++默认include路径 转自:http://www.network-theory.co.uk/docs/gccintro/gccintro_23.htmlhttp://ilewen. ...
- windows系统下GCC的安装与配置
刚开始看 C++ Primer,看到编译器的部分,自己搜了搜怎么搭建GCC,搜到以下内容,复制过来留个印象: windows系统下GCC的安装方法,以及一些环境变量的配置,如果对GCC不是很清楚,关于 ...
- gcc使用备忘
本文为原创文章,转载请指明该文链接 Options Controling the kind of Output -x language 明确说明输入文件的编码语言,没有该选项的话, gcc 会根据输入 ...
随机推荐
- IOS生成同时支持armv7,armv7s,i386的静态库.a文件
许多第三方提供的.a文件(一般是那些SDK),嵌入到我们的xcode项目后,生成不会报错. 一部分粗心的SDK提供方,或者我们自己做的.a文件,就会有报错,常见的就是不是armv7结构,或者不是arm ...
- case选择语句
#!/bin/bash PS3="please select menu:" select i in "Apache" "Mysql&quo ...
- 【深入理解JAVA虚拟机】第二部分.内存自动管理机制.5.调优实战
高性能硬件上的程序部署策略 在高性能硬件上部署程序,目前主要有两种方式: 通过64位JDK来使用大内存. -- 缺点:GC停顿时间长 使用若干个32位虚拟机建立逻辑集群来利用硬件资源. -- 思 ...
- TB5上正常使用msfconsole
在TB上使用系统自带的msfconsole,给出以下错误 [-] Failed to connect to the database: could not connect to server: Con ...
- PhoneGap 的消息推送插件JPush极光推送
一. 什么是极光推送 极光推送,使得开发者可以即时地向其应用程序的用户推送通知或者消息,与用户保持互动, 从而有效地提高留存率,提升用户体验.平台提供整合了 Android 推送.iOS 推送的统一推 ...
- sqlserver数据库 表中字段值有空格,如何去除空格(例如char (5) 存入数据不足5位时sqlserver会自动补空格)
普通的空格 前后的空格,使用LTrim和RTrim即可,例如:LTrim(RTrim(Name)) 中间的空格,使用replace函数替换,例如:Replace(Name,' ','') 如果是普通的 ...
- 第五章.MyBatis高级映射
5.1 新建数据库准备 CREATE TABLE `finacial_products` ( `product_id` ) NOT NULL AUTO_INCREMENT, `name` ) NO ...
- windows快捷命令修炼
Description Windows Key combination Open/Close the Start Menu Windows key Open the Action center. Wi ...
- 使用jQuery实现option的上移和下移
基本思路: 上移:(1)获取当前选中的元素的索引值 (2)判断当前元素是否为第一个元素 (3)如果是,则不执行上移操作,如果不是,则则调用ins ...
- c++构造函数详解(转)
c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初 ...