首页 > 编程语言 >使用 Visual Studio 编译 Notepad2 源码

使用 Visual Studio 编译 Notepad2 源码

时间:2022-09-26 22:15:29浏览次数:64  
标签:v141 生成 编译 Visual 源码 Studio xp Notepad2

NotePad2

Notepad2 是一款免费开源的文本编辑器, 可以用来替换 Windows 的记事本.
下面我们来看下如何通过源码编译生成 Notepad2 以便定制一些个性化需求.

下载

Notepad2 是开源在 Github 上的, 可以直接在 Github 上搜索下载
也可以去这个主页下载 https://xhmikosr.github.io/notepad2-mod/
最近的一次版本是 4.2.25.998

源码结构如图所示

编译

在 build 文件夹里可以找到 Notepad2.sln, 点击打开, 直接编译可能会报错

error MSB8020: 无法找到 v141_xp 的生成工具(平台工具集 =“v141_xp”)。若要使用 v141_xp 生成工具进行生成,
请安装 v141_xp 生成工具。或者,可以升级到当前 Visual Studio 工具,方式是通过选择“项目”菜单或右键单击该解决方案,然后选择“重定解决方案目标”。

或者包含其他错误, 这里有几点需要注意:
1.作者最后一次更新是 2017 年, vs 的工程是 vs2017, 我这里是用 vs2022 打开的, 所以缺少了一些构建工具
2.项目在编译之前会运行 update_rev.bat 更新版本, 也就是说会调用 version.sh 对源码文件进行一些修改, 而你的电脑有可能无法运行 bash 脚本
所以这里需要有一些修改:
1.在项目上右键, 属性, 打开属性页

将平台工具集改成你有的, 这里 141 显示未安装, 就可以改成 143

scintilla 项目也需要进行相同的修改

2.把生成前运行的命令删除, 自己手动去搞下版本

在 src 目录中创建 VersionRev.h 文件, 同时填写以下内容

#define VERSION_HASH _T("0000000")
#define VERSION_REV 0
#define VERSION_REV_FULL _T("0 (0000000)")

将 res 目录中 Notepad2.exe.manifest.conf 文件改名为 Notepad2.exe.manifest
并用记事本打开, 搜索 $WCREV$ , 改成 0

在 "/scintilla/src/UniConversion.h" 文件加入 iostream 头文件
Scintilla 是一个开源的语法高亮控件, 但是不知道为什么不加这个头文件会报错, 所以这里需要手动添加下

error C2039: "string": 不是 "std" 的成员


实际上 version.sh 做的工作只是 添加 VersionRev.h 头文件, 修改 Notepad2.exe.manifest 版本号而已

运行

之后可以点击运行了, 不出以外的就会看到弹出的窗口, 表示编译成功

标签:v141,生成,编译,Visual,源码,Studio,xp,Notepad2
From: https://www.cnblogs.com/asmer/p/16732234.html

相关文章