Qmake - 如何配置包含路径顺序?

3

我在OpenSUSE上安装了Qt-Creator。在其中,我有一个使用编译器'clang'的C++项目。这是我的'.pro'配置:

INCLUDEPATH += "/✪Data_Disk⚜✼/Build/include/c++/v1/"

LIBS += "-stdlib=libc++"

LIBS += "/✪Data_Disk⚜✼/Build/lib/libc++abi.a"

QMAKE_CXXFLAGS += -std=c++14 -stdlib=libc++

TARGET = testCpp

SOURCES += main.cpp

当我编译时,我得到了以下输出:

clang++ -c -pipe -Qunused-arguments -std=c++14 -stdlib=libc++ -g -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/unsupported/linux-clang -I../testCpp -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include -I/✪Data_Disk⚜✼/Build/include/c++/v1 -I. -I../testCpp -I. -o main.o ../testCpp/main.cpp

我希望它能够是以下之一:
clang++ -c -pipe -Qunused-arguments -std=c++14 -stdlib=libc++ -g -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/✪Data_Disk⚜✼/Build/include/c++/v1 -I/usr/share/qt4/mkspecs/unsupported/linux-clang -I../testCpp -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include -I. -I../testCpp -I. -o main.o ../testCpp/main.cpp

或者:

clang++ -c -pipe -Qunused-arguments -std=c++14 -stdlib=libc++ -g -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/✪Data_Disk⚜✼/Build/include/c++/v1 -o main.o ../testCpp/main.cpp

换句话说,我想要在系统定义的路径之前包含这个路径(

-I/✪Data_Disk⚜✼/Build/include/c++/v1

),或者完全删除其他路径,只保留它。有什么建议吗?

1个回答

6
如果您查看 qmake 源代码,例如 Win32MakefileGenerator::writeStandardParts()UnixMakefileGenerator::writeMakeParts(),您会发现标志以以下顺序包含:
  1. QMAKE_CC
  2. QMAKE_CXX
  3. QMAKE_CFLAGS
  4. QMAKE_CXXFLAGS
  5. INCLUDEPATH
  6. ...
INCLUDEPATH 总是在前四个之后。您可以使用 QMAKE_CXXFLAGS 并在其中添加 -I 路径:
QMAKE_CXXFLAGS += -I/✪Data_Disk⚜✼/Build/include/c++/v1

通常避免只有代码的答案。考虑添加一个“描述”,以帮助解释您的代码。谢谢。 - user585968
@MickyDuncan 我同意,那个回答太少了。 - svlasov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接