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

Posted

技术标签:

【中文标题】Qmake - 如何配置包含路径顺序?【英文标题】:Qmake - how to configure include path order? 【发布时间】:2015-03-21 18:45:15 【问题描述】:

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

如果您查看qmake 源,例如Win32MakefileGenerator::writeStandardParts()UnixMakefileGenerator::writeMakeParts(),您将看到这些标志按以下顺序包含:

    QMAKE_CC QMAKE_CXX QMAKE_CFLAGS QMAKE_CXXFLAGS INCLUDEPATH ...

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

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

【讨论】:

通常避免仅使用代码的答案。考虑添加有助于解释代码的description。谢谢 @MickyDuncan 我同意,答案太少了。

以上是关于Qmake - 如何配置包含路径顺序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在qmake中设置libs顺序?

关于logback如何通过当前配置文件获取路径

QMake配置问题

make如何指定cmake路径

qt creator配置qt version:从别处拷贝来的qt库时遇到的问题

如何在qmake中指定repc的输出路径?