You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在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

火山引擎 最新活动