您的位置:首页 > 编程语言 > C语言/C++

Notepad++改造成C/C++ IDE [真正意义上的IDE]

2015-08-30 21:33 295 查看
本文教大家怎么将Notepad++改造成自己喜欢的C/C++编译器。并且提供一些实用的方法让你的IDE更加好用,更加实用。此外还提出在使用过程中容易犯的问题以及相应的解决办法。

在此说明,本文学习参考了博客:http://aofengblog.blog.163.com/blog/static/63170212010111164752194/。感谢该作者的分享。

一、安装MinGW编译器

如果您已经安装过CodeBlocks,就不需要安装了,只需要将绝对路径MinGW\bin添加到您的环境变量path中。

如果您还没有安装任何的MinGW编译器,请先安装,并将bin文件的绝对路径添加到您的环境变量path中。

二、调用cmd形式

在Notepad++中,可以直接打开cmd,并且cmd已经将工作路径更换到当前文件中了

在:菜单运行\Open current dir cmd,会弹出cmd命令行,并且工作路径已经更换到当前文件的路径中



测试如下:新建一个main.cpp文件,输入如下,打开菜单运行\Open current dir cmd,输入g++ -o main.exe main.cpp并回车,这样就生成了与main.cpp同路径的main.exe文件,下一步执行main.exe,就能在cmd窗口中输出Hello world。



以上只是取巧的办法,方便一次两次的运行,这里写出来只是为了让看客们知道这种另类的方法。如果您希望将NotePad++改成一个真正可执行的IDE,就请继续下面的学习之旅。

三、安装NppExec插件

1、NppExec安装

以上博主提供了NppExec_041_dll_Unicode.zip的连接,请先行下载。

下载并解压NppExec_041_dll_Unicode.zip,将 NppExec.dll 和目录NppExec
复制到Notepad++ 的 plugins 目录下

将doc目录下的fparser.html、NppExec.txt、NppExec_Manual.chm、NppExec_Manual.knt、NppExec_TechInfo.txt
复制到 plugins\doc\NppExec 目录下。NppExec文件如果没有就自己新建一个

重新启动Notepad++

2、NppExec配置

a. 打开:菜单Plugins\NppExec\Execute。对于中文的Notepad++为:插件\NppExec\Execute



b. C语言编译器配置:在Execute中输入cmd /c "gcc -o $(CURRENT_DIRECTORY)\$(NAME_PART) $(FULL_CURRENT_PATH) && CLS && pushd $(CURRENT_DIRECTORY) && $(NAME_PART).exe",点击“Save...”按钮保存,命名为“CompilerC”。



c. C++编译器配置:在Execute中输入cmd
/c "g++ -o $(CURRENT_DIRECTORY)\$(NAME_PART) $(FULL_CURRENT_PATH) && CLS && pushd $(CURRENT_DIRECTORY) && $(NAME_PART).exe",点击“Save...”按钮保存,命名为“CompilerC++”。



d. 将CompilerC和CompilerC++添加到Macros菜单中

打开Pluguns\NppExec\Advanved Options,对于中文的Notepad++为:插件\NppExec\Advanved
Options



在Associated
script中分别选择CompilerC和CompilerC++,点击Add/Modify依次添加到Menu items中,期间注意修改Item name。在Menu items中勾选Place to the Macros submenu。



e. 加上快捷键

打开:宏\管理快捷键...。可以看到,已经有了CompilerC和CompilerC++两栏。下一步我们分别为他们设置快捷键F9和F10。



选择Plugin commands,找到我们需要的CompilerC和CompilerC++,Notepad++将大部分快捷键都占用了,但是F9和F10都没有用,这里可以将这两个键用上。



四、使用分析

1. 回到输入cmd
/c "gcc -o $(CURRENT_DIRECTORY)\$(NAME_PART) $(FULL_CURRENT_PATH) && CLS && pushd $(CURRENT_DIRECTORY) && $(NAME_PART).exe"这句话(以CompilerC为例,CompilerC++类似)

这里解释下这句话:用/c的方式打开cmd,调用gcc.exe,输出文件为本文件所在路径下与本文件名同名的exe,输入文件为本文件绝对路径,之后执行CLS命令,之后将工作路径更换到当前路径下,调用与本文件同名的exe文件执行。网上很多有关Notepad++安装配置C/C++编译器的博客都是抄自于一同个人,所以大多都一样,而且不使用。在小布博客中,采用了不一样的命令,带给您不尽的便利。主要修改在于1:$(CURRENT_DIRECTORY)\$(NAME_PART)
将最终生成的可执行文件放在了与main源程序相同的路径下,网上别的方法会将exe生成在Notepad++的安装路径下,这是用户不愿看到的;2:pushd $(CURRENT_DIRECTORY) && $(NAME_PART).exe。将cmd的工作路径更换到当前路径下,并调用生成的可执行文件,如果不更换路径,就会发生在cmd默认路径下远程调用生成的exe,如果程序中需要打开文件、生成文件,路径都需要改为相对于cmd默认路径来,只有将当前cmd路径换到exe本身的路径下,才能更方便的使用。题外话,大家可以尝试用/k的方式打开cmd。

C/C++中有时需要带参数的main。(void main(int args, char *argv[]))。这个参数通过Notepad++怎么传递呢?在我们以上输入中,最后一句话为$(NAME_PART).exe,代表在cmd中调用了一个可执行文件exe,但是没有给参数,如果我们需要传递参数,就需要给在:菜单Plugins\NppExec\Execute中进行设置,将需要的参数添加在$(NAME_PART).exe后面,例如想要使用CompilerC++并添加两个参数,分别是100和1000,只需要在菜单Plugins\NppExec\Execute中选中CompilerC++,并输入cmd
/c "g++ -o $(CURRENT_DIRECTORY)\$(NAME_PART) $(FULL_CURRENT_PATH) && CLS && pushd $(CURRENT_DIRECTORY) && $(NAME_PART).exe 100 1000"。即添加了参数在末尾,以空格隔开。



2.
考虑到源文件中基本上会包含(#include)很多自己写的文件,部分编译器会自动在源文件所在目录下搜索包含的文件,如果您的编译器不会这样做,源文件中包含的自己写的头文件就不能正确的被找到,因为当前工作路径在cmd的默认路径下。为解决这个问题,就需要将pushd动作提前,改为这句话:cmd /c "pushd
$(CURRENT_DIRECTORY) && gcc -o $(NAME_PART) $(FULL_CURRENT_PATH) && $(NAME_PART).exe"。这句话先将工作路径更换到源文件所在的路径,再调用gcc.exe编译源文件,这样工作路径更改了,头文件只要相对于源文件给出相对包含路径就能正确找到了。还是那句话,由于大部分编译器会自动在源文件所在目录下搜索包含的文件,所以这点修改是不必要的,只是针对于比较old的编译器可能会出现这样的问题。

3.
代码都对了,可是编译的时候还是出现问题

由于Notepad++在新建文件的时候默认是采用UTF-8无BOM编码格式,编码这一块小布还是很熟悉的,欢迎讨论,有关编码问题这篇文章写得不错http://www.cnblogs.com/chenwenbiao/archive/2011/08/11/2134503.html。而大部分C/C++编译器需要ANSI编码,所以需要将源文件都转换成ANSI编码。如果您的源文件中出现汉字,就需要进行UTF-8无BOM编码到ANSI编码的转换操作,如果源文件不包含任何汉字,不用转换也可以,因为UTF-8无BOM编码兼容ANSI编码,就是说,纯英文符号的文件,两种编码编出的码是一样的,所以有些人会疑惑,为什么添加了汉字在文件中就不能正确的运行了。因为编码出错了。



可以修改Notepad++创建文本是默认的编码,打开:菜单设置\首选项。在新建中将编码栏选中ANSI就好了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: