c – 使用qmake查找编译器供应商/版本

有没有办法通过qmake获取用户使用的编译器的版本和供应商?我需要的是在使用g 3.x时禁用构建我的项目的目标,并在使用g 4.x时启用它们.

更新:大多数答案针对预处理器.这是我想避免的事情.我不希望为特定的编译器版本构建一个目标,我希望这个决定由构建系统进行.

解决方法

除了 ashcatch的答案之外,qmake允许您将 query the command line作为变量返回.所以你可以这样做:
linux-g++ {
    system( g++ --version | grep -e "\<4.[0-9]" ) {
        message( "g++ version 4.x found" )
        CONfig += g++4
    }
    else system( g++ --version | grep -e "\<3.[0-9]" ) {
        message( "g++ version 3.x found" )
        CONfig += g++3
    }
    else {
        error( "UnkNown system/compiler configuration" )
    }
}

然后,当您要使用它来指定目标时,可以使用配置范围规则:

SOURCES += blah blah2 blah3
g++4: SOURCES += blah4 blah5

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...