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 会根据输入 ...
随机推荐
- 安装或删除Skype for business server组件的时候,报错"错误: 找不到 SQL 服务"
安装或删除Skype for business server组件的时候,到了安装所有并置数据库的时候,报错“错误: 找不到 SQL 服务.确保计算机 skype.centos.com 中安装了 SQL ...
- Carbon中文使用手册
Introduction Carbon 继承了PHP的 Datetime 类和JsonSerialiable.所以 Carbon 中没有涉及到的,但在 Datetime 和JsonSerializab ...
- TIAGO机器人传感器参数简介 手册翻译
本来认为这篇文章是最没人气的,竟然收到了回复,看来要继续更新本文了.留下笔者联系方式,邮箱leop22@163.com,欢迎邮件交流. 防止不良爬虫,原文链接:http://www.cnblogs.c ...
- S/4HANA生产订单的标准状态和透明工厂原型状态的映射
事务码CO03查看生产订单的状态: 从下面的界面能看出S/4HANA里生产订单在任意时刻可能存在多个状态: 生产订单的ID和状态ID的关系是1:N,维护在数据库表VSAUFK里: 如何把上述SAP系统 ...
- 天地图,js 4.0 api,简单调用,高手请绕行
本文介绍使用天地图 js4.0 api,实现地图显示后台gps分布情况: 主要借用H5 GPS获取,利用天地图的背景展示: 效果图如下: 第一步,通过采集网页,手机gps数据,录入后台数据库:界面如下 ...
- 转 C++11 并发指南std::condition_variable详解
之前看过,但是一直没有怎么用就忘了,转一篇别人的文字记录下来 本文将介绍 C++11 标准中 <condition_variable> 头文件里面的类和相关函数. <conditio ...
- D3——根据数据画图
为DOM元素添加class .attr("class", "bar") //为元素添加class属性,<div class="bar" ...
- MATLAB入门学习(五)
现在,我们来学画图吧.╭( ・ㅂ・)و ̑̑ 绘制函数图像最常用的命令是plot plot(x,y,s)x,y为同维向量,绘制分别以x为横坐标,y为纵坐标的曲线 如果x y 是矩阵的话则会绘制多条曲线 ...
- [objc explain]: Non-fragile ivars
[objc explain]: Non-fragile ivars (2009-01-27 09:30 PM) Non-fragile instance variables are a hea ...
- 【[SHOI2015]脑洞治疗仪】
我太sb啦 合并的时候又漏了,又漏了,又漏了 我个sb 这是个板子题,并不知道为什么SHOI2015会考这么板子的题,但是我又sb了,又sb了,又sb了,又没有1A 显然我是凉了 这道题有三个操作 区 ...