编译 Notepad++ 踩坑记录

官方的指引比较简略,我这里补充一些维护者认为没必要说,但是初次接触的朋友必须注意的内容

宏观步骤

  1. 从 Github 上 Clone 代码下来
  2. 编译 Scintilla,这个是 Notepad++ 的核心依赖库
  3. 编译 PowerEditor,即 Notepad++ 主体程序

步骤 2 中的编译坑

  1. 这个地方要用命令行编译,不能用 VS 直接编译
  2. 此处系统默认 v120_xp 的 Platform Toolset,通俗的讲,你要安装 VS2013 的工具集,最简便的方法是安装 VS2013 Community 版本
  3. 按照文档编译时,要注意的是 Boost 库的版本,此时代码中使用的是 1.58.0,所以我也下载的是这个版本,并放到了一个固定位置
  4. 编译时要用 Developer Command Prompt For VS2013 的命令行,原因是此种启动方式会自带环境变量设置,这一步很重要
  5. 设置 BuildBoost.bat 中的变量

BOOSTPATH=C:\sources\boost_1_58_0
MSVCTOOLSET=msvc-12.0
BOOSTVERSION=1.58.0
其他地方可以不设置

  1. 运行时,不要任何参数,特别是不能加 -x64,因为通过阅读 BuildBoost.bat 的代码我们可以看到,其实 x64 不仅仅是 64 位的意思,本质上是 ia64 指令集的意思,如果你的是 x86 指令集的机器,即传统的 PC 或 PC Server,那么就不要加 -x64 参数进行编译,同样的,后面编译 PowerEditor 时也不要选择 x64 配置
  2. 根据文档编译好 boost 后,再到 win32 下面编译出 dll、lib 等最终结果文件
  3. 将 bin 目录下除 empty.txt 所有的文件拷贝到 PowerEditor 的生成目录中,此处要注意,根据选用的配置不同,其生成目录也不同

步骤 3 中的编译坑

  1. 这个地方需要 VS 直接编译
  2. 此处系统默认 v140_xp 的 Platform Toolset,对于 VS2017 默认只有 v141,解决方法是运行 Visual Studio Installer 在里面增加选项,具体可参考这里
  3. 这时候编译仍然会有 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),这里同样需要修改配置,具体参考这里

最终即可编译成功,运行!

你可能感兴趣的:(编译 Notepad++ 踩坑记录)