我正在尝试使用qmake生成一个c++项目,并在visual studio下编译它。这个项目是对itk的依赖。我做了一个包含MyITK项目的.pri:
MyITK {
CONFIG_FOUND += MyITK
INCLUDEPATH += $${PACKAGE_SOURCES}/Shared/MyITK
QMAKE_LIBDIR += $${PACKAGE_LIB}/MyITK
win32:LIBS += ITKIONIFTI-4.13.lib \
ITKCommon-4.13.lib \
ITKBiasCorrection-4.13.lib \
ITKBioCell-4.13.lib \等
在我的项目的.pro中是这样的:
CONFIG += staticlib MyITK
HEADERS += \
myowncode.h \
myowncode2.h \
myowncode3.h \
SOURCES += \
myowncode.cpp \
myowncode2.cpp \当我尝试编译我的项目时,只有当我将它们直接放在$${PACKAGE_SOURCES}/Shared/MyITK中时,它才能找到.h
如果我从itk中“复制过去”源代码,它是这样组织的: /Modules/ModuleNames/SubModulesNames/include
有没有办法让QMake在所有子目录中查找.h?
根据Matt answers的说法,我尝试过:
ITKModules = Core Filtering IO Numerics Registration Segmentation
Core.submodules = Common FiniteDifference
IO.submodules = NIFTI ImageBase
Numerics.submodules = Eigen FEM NarrowBand NeuralNetworks
Registration.submodules = Common FEM
Segmentation.submodules = BioCell ConnectedComponents KLMRegionGrowing
MyITK {
CONFIG_FOUND += MyITK
for(foo, ITKModules): for(bar, $${foo}.submodules) {
INCLUDEPATH += $${PACKAGE_SOURCES}/Shared/MyITK/Modules/$${foo}/$${bar}/include
}
QMAKE_LIBDIR += $${PACKAGE_LIB}/MyITK
win32:LIBS += ITKIONIFTI-4.13.lib \
ITKCommon-4.13.lib \
ITKBiasCorrection-4.13.lib \
ITKBioCell-4.13.lib \}
但是它仍然不能在VS编译时链接到.h。
发布于 2018-04-18 18:25:21
有没有办法让QMake在所有子目录中查找.h?
实际上,您正在尝试让编译器查看所有子目录,而不是qmake。
qmake本身没有生成子目录列表的内置函数。但是你可以使用循环来修饰一下你的pro:
modules = x1 x2 x3
x1.submodules = y1 y4
x2.submodules = y2 y5
x3.submodules = y3 y6
for(foo, modules): for(bar, $${foo}.submodules) {
INCLUDEPATH += /Modules/$${foo}/$${bar}/include
}https://stackoverflow.com/questions/49879181
复制相似问题