本文主要是介绍VS2017和Qt5.12中调用外部库的一些心得,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
调用别人写的外部库,大体上分两个步骤:
1.引入相应的头文件xxx.h到你的工程
2.引入相应的xxx.lib到你的工程
其真正的核心就在于编译器,编译器是个大傻瓜,你不告诉它你的xxx.h文件和xxx.lib文件在哪里,它就不知道去哪里找,所以我们的核心就是告诉编译器去哪里找我们xxx.h文件和xxx.lib文件。
当然你可以选择直接在你的IDE下使用如下语句将xxx.h文件包含到你的工程下,
#include "外部头文件的绝对路径/xxx.h"
使用如下语句将xxx.lib也弄到你的工程中:
#pragma comment(lib,"外部库文件的绝对路径/xxx.lib")
但是这样对于像我这样有点小小的强迫症的人来说实在是不开心,我们希望去掉那个外部头文件的绝对路径,直接使用如下语句:
#include "xxx.h"
#pragma comment(lib,"xxx.lib")
就能将头文件和lib文件弄进来。
所以我们需要告诉我们的编译器,xxx.h和xxx.lib的绝对路径在哪里,以便让它能够找到它们。
虽然就是这两步,但在不同的IDE下却有些地方需要真正弄明白,才不至于在以后的编程中使自己困惑。下面结合图片进行记录说明。
首先外部库一般都有如下结构:
include目录和lib目录
一、VS2017下
这一步告诉你的编译器你的xxx.h文件在哪个路径下。
这一步告诉你的编译器你的xxx.lib在哪个目录下。
最后就是把xxx.lib弄进来了,你可以有两种选择:
第一种:使用如下指令
#pragma comment(lib,"xxx.lib")
第二种:直接在IDE上弄,如下图
二、Qt5.12下
这一步告诉你的编译器你的xxx.h文件在哪个路径下。
这一步告诉你的编译器你的xxx.lib在哪个目录下。
最后就是把xxx.lib弄进来了,你可以有两种选择:
第一种:使用如下指令
#pragma comment(lib,"xxx.lib")
第二种:我在qt上还没有发现,O(∩_∩)O哈哈~
总结:
所以推荐使用第一种用指令的方式引入,这样,既能弄清楚原理,又能训练自己的能力。
不管是什么IDE,归根结底还是开始的两步;
1.引入相应的头文件xxx.h到你的工程
2.引入相应的xxx.lib到你的工程
(就是为了让编译器找到它们的具体位置,你才得去配置它们,编译器真是个大傻瓜,你说未来的电脑会不会像我们人类一样自动去搜寻它不知道的东西呢.......O(∩_∩)O哈哈~)
以上是我在配置OpenGL中遇到的小“惊喜”,此外我还遇到了一个问题,就是在qt下使用glfw3.lib的问题,如下图:
glfw的lib下目录结构:
使用glfw3.lib会报一大堆问题.......(这个问题在VS2017下不会出现)
当我使用glfw3dll.lib就不会有问题了
真是诡异.......
这篇关于VS2017和Qt5.12中调用外部库的一些心得的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!