可以先参考这几个:
https://www.cnblogs.com/blueroses/p/8268217.html
https://blog.csdn.net/k_wang_/article/details/82870401
https://blog.csdn.net/onlyshi/article/details/81082035
开车了:
1、先从下面下载1.17版本代码,解压(不要中文路径),用VS2017打开或者VS2019,工程应该是2019做的,目录:
/platform/win32/mupdf.sln
2、如果2017打开,编译会提示V142编译器没有,那就每个工程右键->属性->常规,把“平台工具集”改为V141
3、Debug时把C/C++->代码生成->“运行库”改为“多线程调试”。Release时选择“多线程”,比如编译libmupdf,他需要libluratech和libpkcs7,所以要一起改过来。
注意,一定要分开Debug和Release来编译,不然到时候调试Qt debug时用release文件会提示“正在生成代码”,每次都要3~4分钟,搞死你。
4、现在编译,可以在win32/Release以及Debug目录下找到*.lib文件,只要libmupdf/libthirdparth/libresources这3个即可,注意resources只有Release版本。
5、在其他地方新建lib目录,把Release目录考到lib下,即lib/Release/libmupdf.lib。把include目录拷到跟lib同级目录,这样就可以用lib和include这2个目录干活了。我发现编出来100多M。
6、QT Creator在pro项目右键->添加库,选择lib,include选择我们上面的include,不然他会选择lib目录,然后得到这样的东西:
win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += F:/WindowsDownload/QtMupdf/mupdf/lib/release/libthirdparty.libelse:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += F:/WindowsDownload/QtMupdf/mupdf/lib/debug/libthirdparty.lib else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += F:/WindowsDownload/QtMupdf/mupdf/lib/release/libthirdparty.lib else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += F:/WindowsDownload/QtMupdf/mupdf/lib/debug/libthirdparty.lib
意思就是debug和release都要搞一套,如果只有release,那么就删掉改成一句话就行了:
PRE_TARGETDEPS += F:/WindowsDownload/QtMupdf/mupdf/lib/release/libthirdparty.lib
7、你以为可以了吗,错误!VS编译器编出来的不能给MINGW编译器使用,哈哈,让你装MS编译器,问你累不累!
更新QT,提示没有可用的资料库,我们可以用这个网址:http://mirrors.ustc.edu.cn/qtproject/online/qtsdkrepository/windows_x86/root/qt/
另外,QT集成版的地址为:xxx/official_releases/qt/5.14/5.14.2/,例如:https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/qt/5.14/5.14.2/,如果找不到这种集成包,说明还没有打成一个包,就只能下载source自己配置。
如果更新组件那里一直99%,我是没办法,直接重新卸载重装,再进去就可以都选上了:
8、再打开工程,并把构建改为VS2017,继续编译,终于通过了:
上面很清楚,我们是release版本的lib,当然没有调试信息了。
mupdf源码从这里下载,骚年,最好用7zip打开: