Qt中的 DEPENDPATH 和 INCLUDEPATH 的区别

2023-05-16

在Qt中添加库文件的时候,Qt会自动在pro文件里生成三行配置

    INCLUDEPATH += dir
    DEPENDPATH += dir
    LIBS += -Ldir -llibxxx

includepath 和 libs作用都比较明确,唯独这个DEPENDPATH的作用不是很清楚,他又和INCLUDEPATH 有什么区别,有点儿稀里糊涂的。

先按照我们的惯常操作,问度娘,但是度娘也没有给出答案,所有提到DEPENDPATH就是一句话,设置依赖路径,这和废话没有任何区别,依赖路径又是干啥的,有什么用呢?

自己测试一下吧。

1.DEPENDPATH

我们知道pro文件是Qt专有的项目配置文件,他的使用方式为,编译时先用qmake根据pro文件生成Makefile文件,再用make执行Makefile完成编译,那我们就看一下Makefile文件有啥区别

假如设置我们只有一个文件main.cpp要编译,DEPENDPATH = xxxx,xxxx里有两个文件dep.h和dep.cpp,对比后发现,加不加DEPENDPATH设置的区别如下:

    没有DEPENDPATH设置
    debug/main.o: ../../TestBoost/main.cpp
        $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\main.o ..\..\TestBoost\main.cpp
     
    增加DEPENDPATH设置
    debug/main.o: ../../TestBoost/main.cpp def.h
        $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\main.o ..\..\TestBoost\main.cpp

根据makefile规则,紧跟在main.o: 后面的文件是编译生成main.o文件时依赖的文件,这个依赖的意思是,如果依赖的文件在main.o文件发生过更改,那么下次编译时main.o需要重新生成,否则无需重新生成

增加DEPENDPTH后,Qt会将该目录下所有的头文件加入到每个cpp文件对应的.o文件的依赖文件里,这样如果DEPENDPATH目录里的头文件发生了变化,所有的cpp都会重新编译


2.INCLUDEPATH

根据上述方式测试INCLUDEPATH,INCLUDEPATH同样会被添加到编译.o文件的依赖文件中,不过INCLUDEPATH还有另一个作用就是,在代码里写#include时可以找到相应的文件,否则编译时会报找不到文件的错误
————————————————
版权声明:本文为CSDN博主「My__God」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/My__God/article/details/111517166

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt中的 DEPENDPATH 和 INCLUDEPATH 的区别 的相关文章

  • Qt中的 DEPENDPATH 和 INCLUDEPATH 的区别

    在Qt中添加库文件的时候 xff0c Qt会自动在pro文件里生成三行配置 INCLUDEPATH 43 61 dir DEPENDPATH 43 61 dir LIBS 43 61 Ldir llibxxx includepath 和 l
  • vscode 增加includepath

    方法一 xff1a 按下ctrl 43 shift 43 p打开命令 xff0c 搜索下面关键字 c c 43 43 edit configration 修改下面includepath栏 xff0c 按上面的说明提示修改 34 config
  • Qt *.pro文件的INCLUDEPATH和LIBS写法

    Qt pro文件的INCLUDEPATH和LIBS写法 一般的通用 如图所示 INCLUDEPATH usr local qwt 6 1 3 include INCLUDEPATH include LIBS L usr local qwt
  • 如何在 Cython 中指定 `.pxd` 文件的路径

    我的项目有以下目录结构 Makefile pxd pyx Landscaping pyx Shrubbing pxd Shrubbing pyx setup py 然而 如果我移动Shrubbing pxd比如说 在其他任何地方pxd 我收
  • include_once,php中的相对路径

    我有 3 个文件 home failed attempt login 文件 home 和 failed attempt 均指登录文件 烦人的是他们抛出一个错误 说登录文件不存在 如果我这样做 家会抛出异常 但尝试失败 include onc
  • cmake include_directories 顺序之后/之前

    我在源树中有一个文件 其名称为 time h 与系统 time h 完全相同 这是无法改变的 我在使用 cmake 时遇到了一个问题 当我使用 include library 选项时 它会被转换为 I 标志 这意味着我的自定义 time h
  • gcc include 顺序损坏?

    我遇到了一个奇怪的问题 linux c 编译器包含本地目录而不是系统目录中的文件 使用 H 选项查看预编译器输出 可以看到系统文件 usr include sched h突然包括time h来自本地目录而不是系统一的标头 我假设如果包含文件
  • Visual Studio 2010 包含目录路径

    我有一个 Visual Studio 解决方案 myvs sln 路径如下 c dir1 dir2 dir3 myvs myvs myvs sln 我安装了 boost 版本 xxxc dir1 dir2 dir3 boostxxx 我在项
  • “(include_path='.:/usr/share/pear:/usr/share/php')”是什么意思?

    我在 EC2 上有如下文件结构 但面临一些文件引用问题 index php db config php cron cron1 php 我尝试过将文件引用为 require once dirname FILE db config php re
  • 考虑到危险,为什么项目要使用 -I include 开关?

    阅读细则 I在 GCC 中切换时 我相当震惊地发现在命令行上使用它会覆盖系统包含 来自预处理器文档 https gcc gnu org onlinedocs cpp Invocation html Invocation 您可以使用 I覆盖系
  • 创建示例 Qt 应用程序时无法打开包含文件:'stddef.h' 找不到此类文件或目录错误

    stddef h 文件位于已安装的诺基亚 Qt SDK 包含文件夹中 但在运行 Qt Simulator 时仍然出现编译错误 有任何想法吗 提前致谢 当我尝试使用 VS2008 版本的 Qt 为 Windows 进行编译时 出现了此错误消息
  • 如何使用自动工具设置包含路径

    我正在开发一个 C 项目 该项目使用autoconf automake 我正在努力正确设置包含路径 CPPFLAGS 我读了大约3个小时的文档 但我还没有弄清楚 我不是在寻找黑客 而是在寻找正确的方法来做到这一点 这是我的难题 据我所知 包
  • 如何#include 第三方库

    我已经构建并安装了一个名为的库OhNet http wiki openhome org wiki OhNet After make install框架对应的头文件已经安装在下面usr local include ohNet 现在我想在我的
  • 如何包含文档根目录之外的文件?

    我想要做的是将 domain1 中的 file1 php 包含到 domain2 上的 file2 php 中 所以我想我应该做的是这样的 file2 php require once var www vhosts domain1 http
  • 错误:无法加载 libphutil

    我们已经安装运行Phabricator在我们的一台服务器中 今天 我按照 中给出的标准步骤对其进行了升级 https secure phabricator com book phabricator article upgrading htt
  • 将文件“移动”到包含路径列表中意味着什么?

    在 Zend Framework 初学者指南 一书中 它说 的内容library 目录应该移动到 PHP 中的某个位置 include 路径 列表 我不明白 不包括引用特定位置中特定目录的路径保留值 是这个意思吗 或者我是否必须将文件夹移动
  • c_cpp_properties.json 中的 includePath 在 C 的 VSCode 中不起作用

    我正在 Ubuntu 18 04 上使用 C C 扩展的 VSCode 进行工作 我试图包含 gmodule h 并且它引发了错误gmodule h No such file or directory主文件第 2 行第 10 个字符 因此
  • PHP 包含绝对路径

    我的网站上有一个名为 basePath 的变量 其设置为 basePath Systems dgw 我在所有 css js 和图像标签上使用它 为了更好的可见性而缩短 我对这些包含没有任何问题 它们在我所在的任何文件和文件夹中都可以正常工作
  • 如何在 CMake 项目中使用 LLVM 的 libcxx 和 libcxxabi?

    目前我正在跑步Debian 9 https en wikipedia org wiki Debian version history Debian 9 Stretch 拉伸 用系统默认的编译器GCC 6 3 0 但我有一个使用 CMake
  • 为使用 conda 安装的仅标头库设置包含路径

    最近有人建议我作为包管理器查看 conda 不幸的是 我没有成功地找到如何让我的编译器找到与 conda 安装的仅标头库 理想情况下 我希望根本不必手动指定编译器的路径 上下文是我来自 macOS 上的自制软件 它会在正确的位置创建符号链接

随机推荐

  • stm32CUBEIDE 生成的串口初始化代码详解

    static void MX USART1 UART Init void huart1 Instance 61 USART1 huart1 Init BaudRate 61 115200 huart1 Init WordLength 61
  • Install Python 3 on Ubuntu 18.04 or 20.04

    Install Python 3 on Ubuntu 18 04 or 20 04 Step1 Check your version of PythonStep 2 Install Supporting SoftwareStep 3 Dow
  • Python 报错:Command "python setup.py egg_info" failed with error code 1

    最近做一个项目 xff0c 需要搭建很多不同的python环境 xff0c 于是我就用pip install装了很多包 xff0c 但是装包的时候我遇到了很多次这个报错 xff0c 比如这一次我在安装imgaug的时候也提示了这个错误 如图
  • FreeRTOS 常用的几个函数

    1 xff09 vTaskSuspend TaskHandle t Task ID 挂起指定任务 被挂起的任务绝不会得到CPU的使用权 xff0c 不管该任务具有什么优先 级 使用实例 static TaskHandle t LED Tas
  • FreeRTOS 任务设计注意事项

    1 FreeRTOS中程序运行的上下文包括 xff1a 中断服务函数普通任务空闲任务 1 xff09 中断服务函数是一种需要特别注意的上下文环境 xff0c 它运行在非任务的执行环境下 xff08 一般为芯片的一种特殊运行模式 xff08
  • 2022,程序员应该如何找工作

    最近找工作面了不少公司 xff0c 也有不少感悟和心得 xff0c 今天在这里分享给大家 1 想清楚自己为什么离职 每个人离职都有自己的理由 xff0c 这里列举了一些离职理由 钱给的不够干的不开心没有发展前途加班太严重回老家发展领导不好不
  • 我的四轴飞行器经验总结(一)

    从我看到了TED的演讲和不断冒出来大疆的无人机产品新闻开始 xff0c 我开始爱上了做四轴飞行器 xff0c 有的人可能只当做是一个电子产品制作或者DIY什么的 xff0c 可是我觉的我对四轴飞行器有着更加深的感情 xff0c 就连我的桌面
  • 环境变量设置后不生效

    不需要重启系统 xff0c 只需要重启VS
  • mac os上编译vlc视频库的踩坑之旅

    mac os上编译vlc视频库的踩坑之旅 mac os上编译vlc视频库的踩坑之旅 开始编译VLC视频库 一前期准备工作二参照官方编译文档安装软件三开始编译vlc四踩一些坑五总结 新项目开始目涉及媒体播放 xff0c 在android上多媒
  • 【JAVA】Eclipse保存时出现“Save could not be completed”问题

    问题 xff1a Save could not be completed 原因 xff1a eclipse的默认编译语言是 34 ISO 8859 1 34 xff0c 这个语言不支持中文 xff0c 所以如果编辑的程序含有中文而且编译语言
  •  MX-Linux:在distrowatch上的排名,为什么能够做到第一?

    个人观点 xff1a MX Linux 很好 MX Linux 桌面操作系统的成功 xff0c 主要有以下这几个因素 xff1a A 技术因素 xff1a 1 关键因素 xff1a MX snapshots工具 xff1b 2 次要因素 x
  • Qt 出现“程序异常结束”问题可能的解决思路

    第三方库的编译有问题 请注意 xff0c 出现此种问题绝不止这一个原因 xff0c 还包括其它很多原因 xff0c 这些原因可能千奇百怪 xff0c 需要你的开发经验去积累去发掘 在这里 xff0c 根据我自己的经验 xff0c 总结几种可
  • Qt 中如何在主窗口中添加子窗口

    方法 原理其实简单 和在窗口上动态 代码的形式 添加控件的方法一样 但需要设置一下子窗口的属性 在子窗口构造函数中添加代码 setWindowFlags Qt FramelessWindowHint 作用 隐藏子窗口的标题栏和边框 如果不隐
  • Qt5 自定义字体修改: 字体、大小以及颜色(部分要点已实测)

    Qt设置字体类型及添加字体文件 Qt 添加字体文件 1 设置支持的字体 QFont font font setFamily 34 填写字体名称 34 2 通过字体文件来设置字体 字体的名称可以是自带的 xff0c 也可以是外部的 xff0c
  • Qt QTableWidget 表格自适应 高度和宽度

    1 在MainWindow中设置 对被嵌入的子窗口进行设置 xff0c 去除子窗口的一些影响到嵌入的部件 pTable gt setWindowFlags Qt CustomizeWindowHint Qt FramelessWindowH
  • 互斥信号量和二值信号量的区别

    详解互斥信号量的概念和运行 https blog csdn net weichushun article details 122744773 互斥信号量的主要作用是对资源实现互斥访问 xff0c 使用二值信号量也可以实现互斥访问的功能 xf
  • Qt QTableWidget设置表头、菜单 背景色,以及不成功的原因

    Qt QTableWidget设置表头背景色不成功的原因 QTableWidget没有设置背景色的函数 xff0c 通过Qss样式来设置背景色 m pTable gt horizontalHeader gt setStyleSheet 34
  • Qt记住上次窗口的位置和状态

    include lt QCloseEvent gt include lt QShowEvent gt void MainWindow showEvent QShowEvent event restoreGeometry config gt
  • git-cola 使用方法

    目录 git cola 的用法实践记录 git cola 是 git的图形界面管理工具 因此 xff0c 在安装 git cola之前 xff0c 一般首先需要安装 git 官网地址 xff1a http git cola github i
  • Qt中的 DEPENDPATH 和 INCLUDEPATH 的区别

    在Qt中添加库文件的时候 xff0c Qt会自动在pro文件里生成三行配置 INCLUDEPATH 43 61 dir DEPENDPATH 43 61 dir LIBS 43 61 Ldir llibxxx includepath 和 l