IDE太大了,用起来不方便,就自己搭配个顺手的开发环境,编译器使用MinGW,编辑器使用Notepad++。
网上有些教程,跟下来会发现容易出各种问题,主要集中在Notepad++中创建编译和运行程序时,键入的命令五花八门,要么根本不能用,要么可以编译,但生成的exe文件创建到了Notapad++文件夹下,不太方便。经过多次尝试,亲测以下方案有效,且保障生成的可执行文件与原来cpp文件在同一个文件夹下。
1、安装MinGW和GCC编译器
这里是官方下载地址:http://www.mingw.org/download/installer
安装时选择适合自己平台和需求的选项就好
2、配置环境变量
假设MinGW安装目录在D:\mingw-w64
通过“计算机 –> 属性 –> 高级系统设置 –> 环境变量 –> 系统”,在“path”中添加 “D:\mingw-w64\x86_64-6.3.0-win32-seh-rt_v5-rev1\mingw64\bin”,“D:\mingw-w64\x86_64-6.3.0-win32-seh-rt_v5-rev1\mingw64\lib”和“D:\mingw-w64\x86_64-6.3.0-win32-seh-rt_v5-rev1\mingw64\include”,即在“path”中添加 “D:\mingw-w64\x86_64-6.3.0-win32-seh-rt_v5-rev1\mingw64\bin;D:\mingw-w64\x86_64-6.3.0-win32-seh-rt_v5-rev1\mingw64\lib;D:\mingw-w64\x86_64-6.3.0-win32-seh-rt_v5-rev1\mingw64\include”
3、安装Notepad++
很简单,官网下载安装就好
4、Notepad++中配置编译与运行命令
4.1 首先打开Notepad++随便编写一段C++ demo并保存为cpp文件,例如:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello C++ World!" << endl;
return 0;
}
4.2 配置编译命令
Notepad++中“菜单栏 – 》运行 – 》运行”或者直接F5,在弹出框中输入:
cmd /k g++ -o $(CURRENT_DIRECTORY)\$(NAME_PART).exe "$(FULL_CURRENT_PATH)" & PAUSE & EXIT
保存为 C++ Compiler,自己按习惯分配个快捷键,以后直接快捷键进行编译
4.3 配置运行命令
在上面操作后,同样的在Notepad++中“菜单栏 – 》运行 – 》运行”或者直接F5,在弹出框中输入:
cmd /k "$(CURRENT_DIRECTORY)\$(NAME_PART)" & PAUSE & EXIT
保存为 C++ Run,自己按习惯分配个快捷键,以后直接快捷键进行运行
4.4 也可以直接合并编译和运行
这是命令为:
cmd /k g++ -o $(CURRENT_DIRECTORY)\$(NAME_PART).exe "$(FULL_CURRENT_PATH)" &cmd /k "$(CURRENT_DIRECTORY)\$(NAME_PART)" & PAUSE & EXIT
好了,这样就大功告成了,如果在这个过程中遇到了什么问题,可以参考下面的常见问题
常见问题
1、MinGW环境变量配置不成功
可以通过在cmd中键入gcc命令测试是否配置成功,如“gcc -v”命令,如果显式了gcc版本信息,表示配置成功,如果不成功,检查环境变量配置问题。
注意,上面教程提到MinGW安装目录在D:\mingw-w64,但我的版本中,实际要用到的gcc.exe文件所处的bin文件是在D:\mingw-w64\x86_64-6.3.0-win32-seh-rt_v5-rev1\mingw64\bin目录,你应该检查你的gcc.exe文件究竟在哪里,那么相应的bin文件目录就是那个,其他include和lib文件夹同理
2、上面步骤4中,编译时出现“g++: error: new.cpp: No such file of directoryg++: fatal error: no input files compilat…”提示
此问题出现表明,Notepad++中配置编译的命令出现了问题,用我上面给的命令应该是没问题的,有的话可以留言探讨
3、编译后的可执行文件跑到了NotePad++安装目录底下,没有和源文件在同一个目录下
应该是编译命令疏忽了,如采用了下述描述
cmd /k g++ -o $(NAME_PART).exe "$(FULL_CURRENT_PATH)" & PAUSE & EXIT