Qt中的 DEPENDPATH 和 INCLUDEPATH 的区别

在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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值