C++11을 기본 컴파일러로 설정하는 방법은 무엇입니까?

C++11을 기본 컴파일러로 설정하는 방법은 무엇입니까?

저는 우분투를 사용하고 있습니다.

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")

관련 정보