我的C ++项目目录结构如下所示:
root
root.pro
include
dir1
header1.h
dir2
header2.h
src
src.pro
dir1
source1.cpp
dir2
source2.cpp
我正在尝试使用CONFIG - = flat选项生成msvc项目以保留文件组织。这适用于源文件(事实上,与.pro或任何更深层目录相同的目录中的每个文件)。
但对于我的“include”目录,生成的过滤器相当奇怪/愚蠢!
MSVC_project
Header Files
..
include
dir1
header1.h
dir2
header2.h
Source Files
src1
source1.cpp
src2
source2.cpp
看起来qmake正在尝试重新创建相对于.pro目录的目录结构。
使用相对或绝对文件名提供HEADERS和SOURCES qmake变量不会改变任何内容。
我的src.pro文件,没有什么花哨的:
NAME = proj_name
TEMPLATE = lib
CONFIG -= flat
QT += core gui opengl
ROOTDIR = ..
#ROOTDIR = $$system(cygpath -aw ../..)
HEADERS_PATH = $$ROOTDIR/include
INCLUDEPATH += $$HEADERS_PATH
HEADERS += $$system(find $$HEADERS_PATH -name "*.h")
SOURCES += $$system(find . -name "*.cpp")
...
我知道如何告诉qmake生成适当的过滤器吗?