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

Qmake - how to configure include path order?

本文关键字:包含 路径 顺序 配置 何配置 Qmake-      更新时间:2023-10-16

我在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

换句话说,我想包括这个路径(

-我/✪数据磁盘⚜✼/构建/包含/c++/v1

)在系统定义之前,或者完全删除它们,只留下它。有什么想法吗?

如果查看qmake源,例如Win32MakefileGenerator::writeStandardParts()UnixMakefileGenerator::writeMakeParts(),您会发现这些标志按以下顺序包括:

  1. QMAKE_CC
  2. QMAKE_CXX
  3. QMAKE_CFLAGS
  4. QMAKE_CXXFLAGS
  5. INCLUDEPATH

INCLUDEPATH总是在前四个之后。您可以使用QMAKE_CXXFLAGS并在那里添加-I路径:

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