在Makefile中自动选择与C++ 11兼容的g ++版本

ste*_*no1 4 c++ makefile c++11

问题:

在运行Ubuntu 12.04的计算机上安装了2个版本的g ++.它们是版本4.6和5.2.

我必须使用Makefile编译C++ 11程序.如果我使用g ++作为编译器,它会自动调用版本4.6,它不支持c ++ 11,因此编译失败.我已经在线阅读了一个教程,所以现在如果我调用g ++,它会自动调用5.2版本,现在它可以工作了.

我发现这个解决方案不太好,因为它只适用于我的电脑.有没有办法在Makefile中识别默认的g ++版本是否支持C++ 11,如果没有,则切换到更新的版本?

谢谢!

Max*_*kin 6

有没有办法在Makefile中识别默认的g ++版本是否支持C++ 11,如果没有,则切换到更新的版本?

您当然可以检测PATHmakefile中可用的默认编译器的版本.但是,您在哪里搜索其他版本?

标准方法是让用户CC通过CXXmake变量指定C编译器和C++编译器,例如: make CC=/path/to/my/gcc CXX=/path/to/my/g++.