首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QMake :使用"system()“函数时出现”测试表达式错误后的额外字符“

QMake :使用"system()“函数时出现”测试表达式错误后的额外字符“
EN

Stack Overflow用户
提问于 2020-07-04 17:53:58
回答 1查看 255关注 0票数 0

我想检查系统中存在的编译器版本,并在此基础上定义一些我添加到.pro文件中的macros.What,如下所示:

代码语言:javascript
复制
7 linux-g++ {
8    system( g++ --version | grep -e "\7.[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 }

但在那之后,我得到了以下错误:

代码语言:javascript
复制
Extra characters after test expression.

用于行1217

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-06 11:04:24

通过以下示例:

代码语言:javascript
复制
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时,我们得到了输出。

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62727684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档