类库大魔王
类库大魔王 懒惰,傲慢,以及无耐心

Windows上编译Zeal

鉴于最近买了个梯子,不大稳定,速度也没以前的快,直接打开在线的开发文档就感觉不大舒服了,想在本地弄个快的。今天编译试用了一下Zeal,感觉不错,比当时刚出来的时候好多了,不会随便动两下就遇到奇怪的bug,界面也不那么丑了。

官网上的安装包是3年半前的了,要最新的需要自己编译,看一下文档说明,还算简单。

首先需要准备好MSVC和Qt5。

然后下载依赖项libarchivesqlite3。都下载官方预编译的包就行了,sqlite3稍微麻烦一点,只能下载到.h.dll.def文件,没有.lib文件,需要自己用命令从.def生成sqlite3.lib

lib /DEF:sqlite3.def /OUT:sqlite3.lib /MACHINE:x64

最后安装工具cmake,就可以开始编译了。

打开cmd命令行窗口,假设libarchive和sqlite3分别存放在C:\Project\libarchiveC:\Project\sqlite-dll-win64-x64,进入zeal代码所在目录,敲命令:

cd zeal
set Qt5_DIR=C:\Qt\5.15.2\msvc2019_64
cmake.exe -B build -DLibArchive_LIBRARY=C:\Project\libarchive\lib\archive.lib -DLibArchive_INCLUDE_DIR=C:\Project\libarchive\include -DSQLite_LIBRARY=C:\Project\sqlite-dll-win64-x64\sqlite3.lib -DSQLite_INCLUDE_DIR=C:\Project\sqlite-dll-win64-x64 -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_C_FLAGS="/utf-8" -DCMAKE_CXX_FLAGS="/utf-8"
cmake.exe --build build --config Release

这样应该就能编译出来zeal.exe了。

如果有Ninja,则可以指定cmake使用ninja以便并行编译项目,加快编译速度:

cd zeal
set Qt5_DIR=C:\Qt\5.15.2\msvc2019_64
cmake.exe -B build -DLibArchive_LIBRARY=C:\Project\libarchive\lib\archive.lib -DLibArchive_INCLUDE_DIR=C:\Project\libarchive\include -DSQLite_LIBRARY=C:\Project\sqlite-dll-win64-x64\sqlite3.lib -DSQLite_INCLUDE_DIR=C:\Project\sqlite-dll-win64-x64 -DCMAKE_MAKE_PROGRAM=C:\Tools\ninja.exe -DCMAKE_BUILD_TYPE=Release -G"Ninja" -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_C_FLAGS="/utf-8" -DCMAKE_CXX_FLAGS="/utf-8"
cmake.exe --build build

可以看到两种方法的区别,前一种方法cmake生成了MSVC的工程文件,cmake编译时调用MSVC的构建工具,所以可以在编译命令中加--config Release指定编译variant,后一种方法生成的是Ninja工程文件,直接指定了编译variant,后面的编译命令不需要再指定编译variant,然后cmake调用了ninja进行编译,ninja会自己根据当前CPU的核数自动启动多个并行编译任务。

编译出zeal.exe后,要把archive.dllsqlite3.dll拷贝到相同目录,再用Qt的windeployqt.exe把依赖的Qt库都拷过来,最后把Qt的Tools目录下的OpenSSL两个文件libcrypto-1_1-x64.dlllibssl-1_1-x64.dll拷贝过来,就能双击运行zeal.exe了,跑起来的界面大概是这个样子:

zeal

感觉本文不错,不妨小额鼓励我一下!
支付宝扫一扫

支付宝扫一扫

微信扫一扫

微信扫一扫

如果你看不到评论框,说明Disqus被墙了。