如何将 C++11 设置为默认编译器?

如何将 C++11 设置为默认编译器?

我正在使用Ubuntu。

在 C++ 中编程时,nullptr编译器无法识别该关键字。

它说它没有在此范围内声明

即使我设置了标志,它也不起作用-std=c++11

答案1

C++11 不是编译器,而是由许多流行编译器实现的 ISO 标准。 Ubuntu 上默认的 C++ 编译器g++来自 GNU 编译器集合。正如您在问题中提到的,该-std=c++11标志启用了 C++11 功能g++以及 Clang(Ubuntu 上提供的另一个 C++ 编译器)。

当您的编译器未启用或不支持 C++11 支持时,会显示您看到的错误消息。 GCC 4.6是第一个支持的版本nullptr,因此如果您使用的是早期版本,您将无法使用nullptr.用于g++ --version获取已安装的版本。

假设您至少使用 GCC 4.6,您将需要确定为什么您的构建系统没有将正确的标志传递给编译器。例如,在 CMake 中,您需要使用:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

相关内容