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

前端之家收集整理的这篇文章主要介绍了c – 使用qmake查找编译器供应商/版本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法通过qmake获取用户使用的编译器的版本和供应商?我需要的是在使用g 3.x时禁用构建我的项目的目标,并在使用g 4.x时启用它们.

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

解决方法

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

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

  1. SOURCES += blah blah2 blah3
  2. g++4: SOURCES += blah4 blah5

猜你在找的C&C++相关文章