前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Build Zeal for Mac OS X

Build Zeal for Mac OS X

作者头像
mzlogin
发布2020-04-16 17:05:45
2.1K0
发布2020-04-16 17:05:45
举报
文章被收录于专栏:闷骚的程序员

我承认,初次遇到 Dash 的时候,我是惊艳的。

怎么会有如此方便的文档查看工具?顿时觉得被各种加载奇慢的 API 文档坑苦了好多年!于是很开心地下载了我常用的 API 文档,并且找到了它在 Windows 下的替代品 Zeal 推荐给朋友们,感觉世界从此美好了许多。

可惜好景不长。

畅快地查询几次之后就经常看到这个等待的界面了,提示 Please Purchase to Skip Waiting. The page will load in 8 seconds.,用它就是为了提升查询效率的,年轻的生命禁不起这样的等待。

购买 Dash 是 $24.99,不能算贵,不过想起了它有个免费开源、界面锉一点但是够用的兄弟 Zeal,还是决定省下这些钱去吃顿好吃的。

下载地址

我在本机编译做的 dmg 文件我上传到了百度网盘,不想折腾的同学可以直接下载拿走。

下载地址:Zeal-for-Mac-OSX.dmg

打开后将 Zeal.app 拖到「应用程序」文件夹就行了。

编译 Zeal

Zeal 的源码在 zealdocs/zeal,编译方法在 README 的 How to compile 一节。

编译的步骤我参考了 Compile Zeal on Mac OS X,不过现在情况跟他那时候有了一些变化,至少从我这里编译的情况来看 Mac OS X 下可以不需要再安装 X11,而源码直接 qmake 和 make 编译通不过了。

如下是编译步骤:

  1. 安装最新版 Qt,官方文档推荐的是 v5.2.0+,我安装的是 v5.5。 下载地址:http://www.qt.io/download-open-source/
  2. 安装 libarchive。 brew install libarchive
  3. 下载源码。 git clone git@github.com:zealdocs/zeal.git
  4. 编译。
    • 使用 Qt Creator 打开源码下的 zeal.pro 文件,点击「项目」标签,将构建设置里的「编辑构建配置」改为 Release。
    • 打开 src/core/core.pri 文件,在最后添加如下内容(需要将路径替换为你的机器上 libarchive 的对应完整路径): macx: { INCLUDEPATH += /usr/local/Cellar/libarchive/3.1.2/include LIBS += -L/usr/local/Cellar/libarchive/3.1.2/lib -larchive }
    • Qt Creator 里的菜单项 「构建」——「构建所有项目」。 如果编译不报错,在你的「项目」标签里的「构建目录」里填写的目录下的 bin 子目录里应该有 Zeal.app 了。
  5. 生成安装包。 使用 Terminal 进入 Zeal.app 所在目录,运行如下命令生成 Zeal.dmg 文件: macdeployqt Zeal.app -dmg macdeployqt 命令在 Qt 安装目录下能找到,比如我的这个命令在 /Users/mazhuang/Qt5.5.0/5.5/clang_64/bin 目录下。

使用截图

遇到过的问题

编译时报错

编译过程中遇到过若干种报错,其实都是由于 libarchive 造成的,正确安装并配置 include 和 lib 目录即可。

报错 1:

代码语言:javascript
复制
zeal/src/core/extractor.cpp:27: error: 'archive.h' file not found
#include <archive.h>
         ^

报错 2:

代码语言:javascript
复制
Undefined symbols for architecture x86_64:
"_archive_entry_pathname", referenced from:
Zeal::Core::Extractor::extract(QString const&, QString const&, QString const&) in extractor.o
"_archive_entry_set_pathname", referenced from:
Zeal::Core::Extractor::extract(QString const&, QString const&, QString const&) in extractor.o
"_archive_error_string", referenced from:
Zeal::Core::Extractor::extract(QString const&, QString const&, QString const&) in extractor.o
"_archive_filter_bytes", referenced from:
Zeal::Core::Extractor::progressCallback(void*) in extractor.o
"_archive_read_extract", referenced from:
Zeal::Core::Extractor::extract(QString const&, QString const&, QString const&) in extractor.o
"_archive_read_extract_set_progress_callback", referenced from:
Zeal::Core::Extractor::extract(QString const&, QString const&, QString const&) in extractor.o
"_archive_read_free", referenced from:
Zeal::Core::Extractor::extract(QString const&, QString const&, QString const&) in extractor.o
"_archive_read_new", referenced from:
Zeal::Core::Extractor::extract(QString const&, QString const&, QString const&) in extractor.o
"_archive_read_next_header", referenced from:
Zeal::Core::Extractor::extract(QString const&, QString const&, QString const&) in extractor.o
"_archive_read_open_filename", referenced from:
Zeal::Core::Extractor::extract(QString const&, QString const&, QString const&) in extractor.o
"_archive_read_support_filter_all", referenced from:
Zeal::Core::Extractor::extract(QString const&, QString const&, QString const&) in extractor.o
"_archive_read_support_format_all", referenced from:
Zeal::Core::Extractor::extract(QString const&, QString const&, QString const&) in extractor.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [../bin/Zeal.app/Contents/MacOS/Zeal] Error 1
make: *** [sub-src-make_first-ordered] Error 2
23:47:44: 进程"/usr/bin/make"退出,退出代码 2 。
Error while building/deploying project zeal (kit: Desktop Qt 5.5.0 clang 64bit)
When executing step "Make"
23:47:44: Elapsed time: 00:01.

解决方法: 安装 libarchive,将根据上面编译步骤 4 里的说明修改 src/core/core.pri 文件。

关于这个问题的讨论见 zealdocs/zeal#372

打包时报错

在打包 dmg 文件的过程中会提示 ERROR,这个貌似不影响,直接忽略就好。

代码语言:javascript
复制
ERROR: no file at "/opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib"
ERROR: no file at "/usr/local/lib/libpq.5.dylib"

解决方法: 忽略。

感谢 Dash,Dash 再见。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/01/16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载地址
  • 编译 Zeal
  • 使用截图
  • 遇到过的问题
    • 编译时报错
      • 打包时报错
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档