编译 Notepad++ 踩坑记录
2018-04-07 本文已影响133人
创业即流浪
官方的指引比较简略,我这里补充一些维护者认为没必要说,但是初次接触的朋友必须注意的内容
宏观步骤
- 从 Github 上 Clone 代码下来
- 编译 Scintilla,这个是 Notepad++ 的核心依赖库
- 编译 PowerEditor,即 Notepad++ 主体程序
步骤 2 中的编译坑
- 这个地方要用命令行编译,不能用 VS 直接编译
- 此处系统默认 v120_xp 的 Platform Toolset,通俗的讲,你要安装 VS2013 的工具集,最简便的方法是安装 VS2013 Community 版本
- 按照文档编译时,要注意的是 Boost 库的版本,此时代码中使用的是 1.58.0,所以我也下载的是这个版本,并放到了一个固定位置
- 编译时要用 Developer Command Prompt For VS2013 的命令行,原因是此种启动方式会自带环境变量设置,这一步很重要
- 设置 BuildBoost.bat 中的变量
BOOSTPATH=C:\sources\boost_1_58_0
MSVCTOOLSET=msvc-12.0
BOOSTVERSION=1.58.0
其他地方可以不设置
- 运行时,不要任何参数,特别是不能加 -x64,因为通过阅读 BuildBoost.bat 的代码我们可以看到,其实 x64 不仅仅是 64 位的意思,本质上是 ia64 指令集的意思,如果你的是 x86 指令集的机器,即传统的 PC 或 PC Server,那么就不要加 -x64 参数进行编译,同样的,后面编译 PowerEditor 时也不要选择 x64 配置
- 根据文档编译好 boost 后,再到 win32 下面编译出 dll、lib 等最终结果文件
- 将 bin 目录下除 empty.txt 所有的文件拷贝到 PowerEditor 的生成目录中,此处要注意,根据选用的配置不同,其生成目录也不同
步骤 3 中的编译坑
- 这个地方需要 VS 直接编译
- 此处系统默认 v140_xp 的 Platform Toolset,对于 VS2017 默认只有 v141,解决方法是运行 Visual Studio Installer 在里面增加选项,具体可参考这里
- 这时候编译仍然会有 Error 发生,
# [error C2220: warning treated as error - no 'object' file generated](https://stackoverflow.com/questions/18225636/error-c2220-warning-treated-as-error-no-object-file-generated)
,这里同样需要修改配置,具体参考这里
最终即可编译成功,运行!