1.获取库的.dll和.lib(或.a)
在资源管理器中找到对应库的.dll和.lib(或.a)
如果第三方库不是Qt生成的:
通常比较规范的第三方库,有lib
和include
两个文件夹。lib
文件夹就是包含的库文件。include
则包含头文件。
如果第三方库是Qt生成的:
(通过Qt创建库的方法请见另一篇文章)
第三方库的构建时可以选择构建套件(Kit):
使用的
MSVC
编译:编译后会生成.dll
和.lib
两个文件。.dll
在运行应用程序时调用,.lib
在应用程序隐式调用动态链接库时使用 使用MinGW
编译:编译后会生成.dll
和.a
两个文件,.dll
在运行应用程序时调用,.a
在应用程序隐式调用动态链接库时使用 注意,如果一个项目中使用了第三方库,构建项目时使用的套件,必须与使用的第三方库构建使用的套件一致,否则会报错”link1104“错误 即如果第三方库用的MinGW编译,项目中添加的库文件是.a,那么项目构建的时候,也是用MinGW编译才可以通过
构建时可以选择套件、构建的位置,如果选择了Debug,则应该到中间文件目录的Debug文件夹下去找构建后的库: 中间文件目录会生成到项目文件的同级目录下:
2.获取库的头文件
在资源管理器中找到对应库的头文件
如果第三方库不是Qt生成的:
一般就存在于第三方库的include
文件夹下
如果第三方库是Qt生成的:
头文件存在于项目目录下
3.在项目中添加该库文件 及 相关头文件
方法一:不拷贝(推荐)
添加库
右击项目,选择“添加库”
或者打开.pro文件,在空白处右击鼠标,选择添加库
点击库文件的“浏览”,库的.a文件。如果库是Qt生成的,则找到对应的中间文件目录的debug目录或者release目录,找到对应的.a文件。
添加库的头文件路径
点击“包含路径”后面的“浏览”
找到库的项目目录(如果库是Qt构建的),选中,然后点击右下角选择文件夹
因为Qt的头文件在项目目录下
完成之后,确定剩余的勾选项,然后一直下一步,直到结束
关于勾选项:
平台
:如果不是Linux和mac平台,可以只选Windows链接
:根据需求选择,可以直接选动态Windows
下的选项: 因为当前使用的库并不是存在于中间文件目录的debug或release子目录下,而是复制到了工程目录下,所以不勾选 “为debug版本添加’d’作为后缀”建议不勾选(勾选了之后在.pro文件中会在库名后加一个d,构建时容易报错“找不到库文件”,如果勾选上,在.pro将d删除即可
“移除release版本中的’d’后缀”不勾选
此处可以查看一下项目的.pro
文件,里面有和库有关的配置信息:
在添加完库之后,.pro
文件中会新生成几行:
其中
LIBS
是确定库的所在位置(-L),以及库名(-l)INCLUDEPATH
是指定头文件的搜索路径DEPENDPATH
用于指定项目中的源文件所依赖的头文件的搜索路径 (二者区别见Qt构建中DEPENDPATH和INCLUDEPATH区别)
使用库
现在就可以使用库了,本例中使用的des.h
即为库中的头文件
方法二:拷贝
将库文件拷贝到当前项目下,新建目录
在工程目录下创建一个新的文件夹(此处取名lib
,随意),将库的.dll
和.a
复制进去(此处以.a为例)
将库的头文件拷贝到当前项目下,新建目录
在项目目录下新建文件夹(此处取名include
,随意),将库头文件拷贝进来(如果多个头文件,建议全部拷贝,因为可能互相包含)。
在Qt Creator中,右击项目中的Header文件夹,点击“Add Existing Directory”(也可以选择“添加现有文件”但是是单文件添加,效率低)
选择当前项目目录下的include
文件夹
稍等片刻,项目中就添加完成了,同时.pro
文件中也更新了配置
添加库和头文件路径
在Qt Creator中右击项目名,点击添加库
或者,打开项目的.pro
文件,右击空白处,点击添加库
选择“外部库”
点击“库文件”右侧“浏览”
找到刚在工程目录下创建的lib文件夹下的.a
文件,选中打开即可
完成后会发现“包含路径”一栏已经自动填充,而且是自动选择了项目目录下的include目录,即刚才拷贝过来的库头文件
关于勾选框,左下如果没有特别情况,只勾选Windows即可。右侧Windows中,“debug或release子目录下的库”,如果是Qt生成的库,可以选上。“为debug版本添加’d‘作为后缀”不勾选。(详细看方法一此处介绍)
之后一路点击“下一步”即可。
使用库
此时就可以使用库了,在引入头文件的时候,可以写相对路径,也可以不写
构建一下,通过,可以正常使用
方法三:其他方式(不太推荐)
比如不在添加库时指定头文件目录,而是添加库后,在项目中添加现有文件夹(Add Existing Directory),在调用使用头文件时,使用绝对路径的方式
在Qt Creator中,右击项目中的Headers
文件夹,选择“Add Existing Directory”(也可以选择“添加现有文件”但是是单文件添加,效率低)
点击“浏览”,找到库(如果是Qt库,则找到该项目文件夹),选择(而不是进入),点击“选择文件夹
然后点击”Start Parsing“,更新目录范围,点击三角图标,展开目录
然后在下面栏中使用通配符*进行筛选,点击Apply Filters,即可选中所有.h文件
按下OK,即可添加完毕 项目的.pro文件中也更新了配置
在使用时,不能直接引用头文件原名,否则查找不到:
需要写上绝对路径或者相对路径,相对路径写法可以参考.pro文件中的:
构建一下,通过,可以正常使用
4.写在后面:
还是老生常谈的问题:
如果一个项目中使用了第三方库,构建项目时使用的套件,必须与使用的第三方库构建使用的套件一致,否则会报错”link1104“错误
即如果第三方库用的
MinGW
编译,生成的库文件包含的是.a
,项目中添加的库文件是.a
,那么项目构建的时候,也是用MinGW
编译才可以通过 如果第三方库用的MSVC
编译,生成的库文件包含的是.lib
,项目中添加的库文件是.lib
,那么项目构建的时候,也是用MSVC
编译才可以通过