如何在qmake中添加子文件夹头文件?VS编译ITK依赖项目配置
解决qmake项目中添加子文件夹头文件的问题
嘿,我来帮你搞定这个在qmake配置里添加子文件夹头文件的需求~ 根据你的项目情况,分两种场景给你具体的解决方案:
一、添加自己项目内的子文件夹头文件
如果是你自己代码里的子文件夹(比如myowncode.h所在目录下有utils/、modules/这类子目录),有两种常用方式:
1. 仅添加头文件搜索路径(让编译器找到头文件)
在你的.pro文件中,通过INCLUDEPATH指定子文件夹路径,用$$PWD(qmake内置变量,代表当前.pro文件所在目录)来保证路径的跨平台性:
# 示例:添加当前目录下的utils和modules/sub两个子文件夹 INCLUDEPATH += $$PWD/utils \ $$PWD/modules/sub
这样编译器就能自动搜索这些目录下的头文件,你在代码里直接#include "xxx.h"就可以了。
2. 同时将子文件夹头文件加入项目(方便IDE识别)
如果你希望Visual Studio的项目列表里显示这些子文件夹的头文件,可以在HEADERS中使用通配符,甚至递归通配符**来匹配嵌套子文件夹:
HEADERS += \ myowncode.h \ myowncode2.h \ # 匹配utils下所有.h文件 $$PWD/utils/*.h \ # 递归匹配modules下所有嵌套子文件夹的.h文件 $$PWD/modules/**/*.h
二、添加ITK/MyITK相关的子文件夹头文件
如果是MyITK库本身的子文件夹头文件没被包含,你可以在MyITK.pri的配置块里补充INCLUDEPATH:
MyITK { CONFIG_FOUND += MyITK INCLUDEPATH += $${PACKAGE_SOURCES}/Shared/MyITK \ # 添加MyITK下的子文件夹路径 $${PACKAGE_SOURCES}/Shared/MyITK/IO \ $${PACKAGE_SOURCES}/Shared/MyITK/Filter QMAKE_LIBDIR += $${PACKAGE_LIB}/MyITK win32:LIBS += ITKIONIFTI-4.13.lib \ ITKCommon-4.13.lib \ ITKBiasCorrection-4.13.lib \ ITKBioCell-4.13.lib \ # 其他依赖库... }
小提示
- 用
$$PWD代替硬编码的绝对路径,能让项目在不同环境下更稳定; - qmake生成Visual Studio项目后,会自动把
INCLUDEPATH里的目录同步到VS的头文件搜索路径中,不需要手动在VS里额外配置。
内容的提问来源于stack exchange,提问作者p.deman




