在Windows上编译zeal
经常使用zeal来查文档,但是在Windows上zeal经常闪退,而Arch上没有这个问题,就想着自己clone一份最新的代码自己编译。
编译前的准备
使用
Visual Studio 2019
安装MSVC.安装CMake.
下载Qt5.15.2.
这里推荐使用aqtinstall,假设我们要把Qt下载到
D:\Qt
1
2
3
4
5
6#安装aqtinstall
pip install aqtinstall
#安装qt到D:\Qt
py -m aqt install --outputdir D:\Qt 5.15.2 windows desktop win64_msvc2019_64 -m all --base https://mirrors.tuna.tsinghua.edu.cn/qt
#安装OpenSSL到D:\Qt
py -m aqt tool windows tools_openssl_x64 1.1.1-10 qt.tools.openssl.win_x64 --outputdir D:\Qt --base https://mirrors.tuna.tsinghua.edu.cn/qtQ: OpenSSL部分的为什么是
1.1.1-10
?A: 可以从这个链接得出,可以看到在本文写下的时文件都是由
1.1.1-10
开头下载libarchive.
直链:https://libarchive.org/downloads/libarchive-v3.5.1-win64.zip
解压在
D:\tmp\libarchive
下载SQLite.
直链:https://sqlite.org/2021/sqlite-dll-win64-x64-3360000.zip
解压之后放在
D:\tmp\sqlite3
,然后打开Developer PowerShell for VS 2019
,执行以下命令:1
2cd D:\tmp\sqlite3
LIB /DEF:sqlite3.def /MACHINE:X64会得到一个
sqlite3.lib
下载zeal的源码.
1
git clone -q --branch=master https://github.com/zealdocs/zeal.git D:/tmp/zeal
开始编译
打开
Developer PowerShell for VS 2019
并将工具添加到环境变量中1
2
3
4
5
6#Qt
$env:Path = "D:\Qt\5.15.2\msvc2019_64\bin;$env:Path"
#libarchive
$env:Path = "D:\tmp\libarchive\bin;$env:Path"
#sqlite3
$env:Path = "D:\tmp\sqlite3;$env:Path"cd进入zeal文件夹执行以下命令
1
2cmake -B build
cmake --build build --config release -j 8在执行build命令的时候可能会出现以下错误:
1
2
3
4D:\tmp\zeal\src\libs\ui\browsertab.cpp(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 [D:\tmp\zeal\build\src\libs\ui\Ui.vcxproj]
D:\tmp\zeal\src\libs\ui\browsertab.cpp(80,27): error C2001: 常量中有换行符 [D:\tmp\zeal\build\src\libs\ui\Ui.vcxproj]
D:\tmp\zeal\src\libs\ui\browsertab.cpp(102,1): error C2001: 常量中有换行符 [D:\tmp\zeal\build\src\libs\ui\Ui.vcxproj]
D:\tmp\zeal\src\libs\ui\browsertab.cpp(80,1): fatal error C1057: 宏扩展中遇到意外的文件结束 [D:\tmp\zeal\build\src\libs\ui\Ui.vcxproj]只需要打开
D:\tmp\zeal\src\libs\ui\browsertab.cpp
文件,将编码改为UTF-8 with BOM
然后重新执行以下命令即可1
cmake --build build --config release -j 8
编译完成之后需要使用
windeployqt
帮助我们打包1
2
3
4
5cd D:\tmp\zeal\build\bin\Release\
windeployqt .\zeal.exe
cp D:\tmp\libarchive\bin\archive.dll ./
cp D:\tmp\sqlite3\sqlite3.dll ./
cp D:\Qt\Tools\OpenSSL\Win_x64\bin\*.dll ./
成品展示
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 徇的小站!
评论