IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> Qt中正确引用外部头文件和库文件的方法和注意点 -> 正文阅读

[C++知识库]Qt中正确引用外部头文件和库文件的方法和注意点


要引入外部库,其主要便是正确编写 pro文件。

一、什么报错是外部库导入错误导致的

  1. 诸如xxxxxxx.cpp:1627: error: ‘sdk’ was not declared in this scope,顾名思义,未声明,往往就是找不到头文件导致。
  2. 诸如xxxxxxx.cpp:1624: error: undefined reference to这一类报错,顾名思义,未定义,往往是找不到库文件导致。

二、解决外部库使用的方法

(一)写入系统环境变量中的外部库调用

在Qt中,“项目”下的“构建设置”下有一个“构建环境”,一般默认使用的是系统环境变量,在“运行设置”下的“Run Environment”一般为使用构建环境,即也是使用的系统环境变量。因此可知,在Qt中调用头文件以及库文件,与系统环境变量是直接相关的。

1、解释说明

  1. 在Windows中,环境变量就是看“Path”下的配置项,不论是头文件还是库文件所在的文件夹位置,都是写在这下面
  2. 在Linux中,与Windows不同的是,与头文件相关的默认环境变量就是/usr/include/usr/local/include这两个目录下。与库文件相关的默认环境变量除了/usr/lib/usr/local/lib(lib可能为lib64,一样的效果)这两个目录下,还包含LD_LIBRARY_PATHLIBRARY_PATH,前者为运行库时使用,后者为构件库使用,但好像前者在构件库也生效。
  3. 写在系统环境中的头文件就可以直接使用了。

2、使用演示

1.头文件

使用#include <xxxx.h>调用。

2.库文件

在Qt工程文档中的xx.pro中,使用LIBS添加库文件,添加所需库文件时使用的名称,为-l加库文件名称(如前面有lib,去掉lib,后面的后缀不要),比如添加libosg.so库文件,写法如下:

LIBS+=-losg //+=的意思是可以直接追加

如果需要添加的库文件较多,可以这么写:

OSGLIBS=-losg -losgDB -losgGA
LIBS+=$$OSGLIBS

(二)未写入系统环境变量中的外部库调用

1、解释说明

  1. 头文件则需要将头文件所在文件夹,或者所在文件夹之前的上几级文件夹写入pro文件中,使用到的属性为INCLUDEPATH
  2. 库文件的同样需要将库文件所在的文件夹写入pro文件夹中,使用的属性为QMAKE_LIBDIR

2、使用演示

1.头文件

pro文件中:
windows下:

osg_dir="C:\test\osg"  //在双引号中左斜右斜都一样
INCLUDEPATH+=$$osg_dir/include //当然也可以是别的文件夹路径和名称

linux下:

INCLUDEPATH+=/home/test/osg

这样便能调用文件夹下的头文件了,注意,如果此时文件夹下还有子文件夹,可以有两种方法
一种是将后续目录写在调用位置,如下:

#include <test/xxx.h>

另一种是将目录写到INCLUDEPATH后面,一直到这个头文件,如下:

INCLUDEPATH+=/home/test/osg/test
#include <xxx.h>
1.库文件

pro文件中添加如下内容:

osg_dir="C:\test\osg"  //在双引号中左斜右斜都一样
QMAKE_LIBDIR+=osg_dir/lib  //这个是库文件所在的文件夹路径及名称 
OSGLIBS=-losg -losgDB -losgGA
LIBS+=$$OSGLIBS

三、总结

  1. 环境变量中有的则直接调用。
  2. 环境变量没有的将路径写在pro文件夹中,然后调用。
  3. 注意pro文件的语法正确。
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-06-16 21:31:10  更:2022-06-16 21:31:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 15:53:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码