闲话不多说,下面开始:
一、首先是下载Notepad++源码
Notepad++官网:
使用Svn check out 源码或者直接下载zip包
路经:svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk
或者:http://svn.tuxfamily.org/notepadplus/repository/trunk/
源码下载成功后有两个目录:
..\PowerEditor
..\scintilla
还有一个readmeFirst.txt文件,该文件就是编译步骤说明。
二、编译Scintilla
因为Notepad++是基于Scintilla 开发的,所以需要先编译Scintilla。
这里编译分两种情况:是否包含Boost。因为SciLexer.dll(编译Scintilla生成的动态链接库)从6.0以后的release版本包括了Boost的PCRE(Perl Compatible Regular Expressions) 库,PCRE其实就是一个Perl库,包括Perl兼容的正则表达式库,所以编译Scintilla需要Boost的支持。如果不包含Boost,则编译Scintilla时默认使用POSIX这个正则表达式库来代替PCRE,这样也能正常编译运行Notepad++,但是可能会导致部分功能不正常。这里根据自己的需要进行选择。
打开Visual Studio 2013的命令行工具,进入 ...\scintilla\ 目录:
1、 包含Boost的编译步骤
l 下载Boost源码 ,解压到一个目录
l 到 ..\scintilla\boostregex\ 目录下运行BuildBoost.bat,参数为Boost源码路径如:BuildBoost.bat E:\sources\boost_1_54_0
l 到 ..\scintilla\win32\ 目录下运行命令:nmake -f scintilla.mak
2、 不包含Boost的编译步骤
l 到 ..\scintilla\win32\ 目录下运行命令:nmake NOBOOST=1 -f scintilla.mak
运行成功之后在 ..\scintilla \bin目录下可以看到生成的一系列文件,其中Scintilla.dll正式我们需要的。
三、编译Notepad++
用Visual Studio 2013打开 ..\PowerEditor\visual.net 目录下的vs工程文件,因为该文件时基于vs2005创建的,所以会有一个升级的过程,升级完成后在Visual Studio 2013里面就可以看到Notepad++的解决方案了。
将上一步生成的Scintilla.dll复制到该Debug文件内或 \bin内,并将调试模式设置为Unicode Debug,然后编译运行就可以看到Notepad++啦。
四、问题
Ø "Error C2220 警告被视为错误" 的问题
解决办法:解决方案上右键->属性->配置属性->C/C++->常规,修改“将警告视为错误”的值为“否”即可。
Ø 找不到Notepad++.exe的问题
解决办法:修改其输出文件名,解决方案上右键->属性->配置属性->链接器->常规,将“输出文件”后改为“$(OutDir)NotePad++.exe”