QMake:使用"system()"函数时"Extra characters after test expression error"
QMake : "Extra characters after test expression error" when using the "system()" function
我想检查系统中存在的编译器版本,并基于此,我想定义一些 macros.What 我已添加到 .pro
文件中,如下所示:
7 linux-g++ {
8 system( g++ --version | grep -e ".[0-9]" ) {
9 message( "g++ version 7.x found" )
10 QMAKE_CXX = x86_64-linux-gnu-g++-7
11 }
12 else system( g++ --version | grep -e "\<8.[0-9]" ) {
13 message( "g++ version 8.x found" )
14 QMAKE_CXX += x86_64-linux-gnu-g++-8
15 DEFINES += HAS_FILESYSTEM_SPEC
16 }
17 else system( g++ --version | grep -e "\<10.[0-9]" ) {
18 message( "g++ version 10.x found" )
19 QMAKE_CXX += x86_64-linux-gnu-g++-10
20 DEFINES += HAS_FILESYSTEM_SPEC
21 }
22 else {
23 error( "Unknown system/compiler configuration" )
24 }
25 }
但在那之后我得到了以下错误:
Extra characters after test expression.
对于行 12
和 17
。
通过以下示例:
VERSION = $$system(g++ --version)
contains( VERSION, 7.[0-9].[0-9] ) {
message(g++ 7.x version)
}
else {
message(not g++ 7.x version)
contains( VERSION, 4.[0-9].[0-9] ) {
message(g++ 4.x version)
}
else {
message(not g++ 4.x version)
}
}
当我们的 g++ 版本是 4.9.3 时,我们得到了输出。
Project MESSAGE: not g++ 7.x version
Project MESSAGE: g++ 4.x version
参见:https://doc.qt.io/qt-5/qmake-function-reference.html#system-replace
我想检查系统中存在的编译器版本,并基于此,我想定义一些 macros.What 我已添加到 .pro
文件中,如下所示:
7 linux-g++ {
8 system( g++ --version | grep -e ".[0-9]" ) {
9 message( "g++ version 7.x found" )
10 QMAKE_CXX = x86_64-linux-gnu-g++-7
11 }
12 else system( g++ --version | grep -e "\<8.[0-9]" ) {
13 message( "g++ version 8.x found" )
14 QMAKE_CXX += x86_64-linux-gnu-g++-8
15 DEFINES += HAS_FILESYSTEM_SPEC
16 }
17 else system( g++ --version | grep -e "\<10.[0-9]" ) {
18 message( "g++ version 10.x found" )
19 QMAKE_CXX += x86_64-linux-gnu-g++-10
20 DEFINES += HAS_FILESYSTEM_SPEC
21 }
22 else {
23 error( "Unknown system/compiler configuration" )
24 }
25 }
但在那之后我得到了以下错误:
Extra characters after test expression.
对于行 12
和 17
。
通过以下示例:
VERSION = $$system(g++ --version)
contains( VERSION, 7.[0-9].[0-9] ) {
message(g++ 7.x version)
}
else {
message(not g++ 7.x version)
contains( VERSION, 4.[0-9].[0-9] ) {
message(g++ 4.x version)
}
else {
message(not g++ 4.x version)
}
}
当我们的 g++ 版本是 4.9.3 时,我们得到了输出。
Project MESSAGE: not g++ 7.x version
Project MESSAGE: g++ 4.x version
参见:https://doc.qt.io/qt-5/qmake-function-reference.html#system-replace