Qt qmake:如果存在pkg config中的标志,则使用它们,否则使用默认值
在我的设置中,我希望同时支持系统范围的Qt安装和自定义Qt安装。我可以使用Qt qmake:如果存在pkg config中的标志,则使用它们,否则使用默认值,qt,qmake,pkg-config,Qt,Qmake,Pkg Config,在我的设置中,我希望同时支持系统范围的Qt安装和自定义Qt安装。我可以使用pkg config为我的系统范围安装获取正确的编译和链接标志: CONFIG += link_pkgconfig PKGCONFIG += Qt5Core 但是,如果pkg config找不到Qt5Core,构建将失败,出现项目错误:找不到Qt5Core开发包 我希望设置合理的默认值(例如/usr/local/qt5),而不是失败。它应实现以下目标: if pkg-config can find Qt5Core {
pkg config
为我的系统范围安装获取正确的编译和链接标志:
CONFIG += link_pkgconfig
PKGCONFIG += Qt5Core
但是,如果pkg config
找不到Qt5Core
,构建将失败,出现项目错误:找不到Qt5Core开发包
我希望设置合理的默认值(例如/usr/local/qt5
),而不是失败。它应实现以下目标:
if pkg-config can find Qt5Core {
PKGCONFIG += Qt5Core
} else {
INCLUDEPATH += /usr/local/qt5/
LIBS += -lQt5Core
}
如何在项目配置中实现这一点?您可以使用内置的测试函数,该函数在辅助shell中执行给定的命令。如果命令以零退出状态返回,则成功;否则将失败。
system(pkg-config --exists Qt5Core) {
PKGCONFIG += Qt5Core
} else {
INCLUDEPATH += /usr/local/qt5/
LIBS += -lQt5Core
}
有一个qmake函数用于:
packagesExist(Qt5Core) {
PKGCONFIG += Qt5Core
} else {
INCLUDEPATH += /usr/local/qt5/
LIBS += -lQt5Core
}