如何编译动态库/静态库之编译Qt4.8.5静态库/动态库

时间:2022-12-07 05:31:52

实习了五周,真的学到了很多东西,也十分感谢同事/前辈对我的耐心教导,要不是他们的耐心真的措手不及。


“编译出来库” “链接到静态库/动态库(Static library/Dynamic library)” 读了这么久书,根本就完全没有听到过,我想还是要怪自己涉及的范围太低,求知欲望不在这一方面。不过万幸的是,同事/前辈的指导有方。


好了,今天这一篇博客是为了记录一下如何编译动态库/静态库之编译Qt4.8.5静态库/动态库(注:LiYuan和DeMin前辈说,要编译的时候,在当解压包里面找一下*.txt,*.doc,*.pdf这类型的文件,一般都会解释!)本来是都没这习惯,到了昨天编译Qt4.8.5的时候,才知道这让你会让你少走很多弯路,少浪费很多时间。


一般需要编译的库,比如open cv, zlib等常被引用的库只要打开对应的*.vcproj文件,然后用不同的Visual Studio版本在debug以及release的状态下运行一下,接着就会在对应的lib文件路劲下产生静态库/动态库(Static library/Dynamic library)。


注:VS2008编译出来的静态库/动态库(Static library/Dynamic library),再被VS2013的软件引用的时候可能会出_MSV_VER不匹配的情况,

报错: “某某文件_MSC_VER”的不匹配项: 值“1800”不匹配值“1700”  这个就是说 ,你的那项文件是用1800生成的,但是你当成的使用的平台更低。

当这种情况出现的时候,要查一下对应的Visual Studio版本是什么(http://baike.baidu.com/item/_MSC_VER),然后再用相应的Visual Studio版本去编译那个你所用到的静态库/动态库(Static library/Dynamic library)。


注:前提是你出错的文件是静态库/动态库(Static library/Dynamic library)相关。如果不是得话,尝试下这个解决方法:方法:在项目右键属性-配置属性-常规中,平台工具集选用为合适平台即可。


好了,接下来就是记录一下,如何编译Qt4.8.5,如何获取Qt静态库,参考官方的文档:http://doc.qt.io/qt-4.8/install-win.html



1. 下载Qt https://www.qt.io/download/(需要登录)。需要注册一下账号!


a) 选择你需要的版本

如何编译动态库/静态库之编译Qt4.8.5静态库/动态库


b) 选择:


如何编译动态库/静态库之编译Qt4.8.5静态库/动态库


 
c) 进入后,可以选择直接下载,也可以选择看不同版本的QT
 

如何编译动态库/静态库之编译Qt4.8.5静态库/动态库


d) 搜:Archive for old version,可以找到更老的版本

如何编译动态库/静态库之编译Qt4.8.5静态库/动态库


 
i. 注:不是下载exe文件
ii. 注:下载-qt-everywhere-opensource-src-4.8.5.zip格式
e) 下载后解压,这是我的解压路径:C:\Users\desmondli\Downloads\qt


2. 使用Visual Studio的CMD
a) 注:这个不同于从搜索菜单中调用出来的CMD
b) 这个CMD在“Visual Studio Tool”下面


3. 用VS的CMD进行操作
a) 定位:cd C:\Users\desmondli\Downloads\qt
b) 执行:configure(这一步完后,会在bin文件下面产生一系列.prl文件),这一步结束后,VS的CMD会提示你键入:nmake
 

如何编译动态库/静态库之编译Qt4.8.5静态库/动态库


c) 执行:nmake(这一步结束后,对应的lib都会产生在bin的文件夹下)
 

如何编译动态库/静态库之编译Qt4.8.5静态库/动态库