2013-06-29 3 views
18

우분투 12.04를 사용하고 기본 gcc는 4.6.3입니다. 그것은 C++ 11 명령을 받아들이지 않고, 명령이 C++ 98과 호환되지 않는다고 출력하고 있습니다. 온라인으로 확인한 결과 운영체제가 불안정 해지면 기본 컴파일러를 변경하지 말라는 조언을 보았습니다. 누구나 수정 또는 C++ 11 호환 gcc 컴파일러를 다운로드하는 안전한 방법을 제안 할 수 있습니까?우분투에서 gcc 컴파일러를 C++ 11로 변경하는 방법

+8

'g ++ -std = C++ 11'하거나하지 않는 경우 g ++ -std = C++ 0x' – jxh

+2

시스템 버전과 함께 다른 버전의 GCC를 설치할 수 있습니다. 직접 다른 버전을 컴파일 할 수도 있습니다. 그물에 많은 자습서가 있습니다 - 단지 당신이 선호하는 검색 엔진을 사용하십시오. GCC는 일반적으로 실행 파일에 버전 번호를 붙이고 버전 별 디렉토리에 특정 라이브러리를 설치하므로 최신 버전은 시스템에서 제공하는 것과 충돌하지 않습니다. –

답변

15

gcc 4.6.3 supports many c++11 features. 그러나 기본적으로 비활성화되어 있습니다. 이러한 플래그를 사용하려면 다음 플래그를 사용하십시오.

g++ -std=c++0x ... 

이 플래그는 GNU 확장도 비활성화합니다. 사용하도록 설정하려면 -std=gnu++0x 플래그를 사용하십시오.

+0

그래서 g ++ -o 실행 파일 이름으로 컴파일하기 위해 명령을 입력해야합니다. filename.cc -std = C++ 0x입니까? –

+1

@talasila 수정. gcc를 4.8로 업그레이드하는 것이 좋습니다. [더 나은 C++ 11 지원] (http://gcc.gnu.org/gcc-4.8/cxx0x_status.html). – dasblinkenlight

+0

기본 컴파일러를 새 것으로 업데이트하는 방법. 왜 사람들은 운영 체제에서 gcc의 기존 버전을 제거하지 않는다고 말하면 시스템이 불안정해질까요? 사실입니까? –

21

다른 사람이 제안 했으므로 std 명령 줄 옵션을 입력해야합니다. 우리가 쉽게 있도록합시다 당신

    Ctrl 키 + Alt 키 + T를 눌러
  1. 열기 터미널
  2. sudo gedit ~/.bashrc
  3. 마지막 줄

    alias g++="g++ --std=c++0x" 
    
  4. 으로 다음 줄을 입력
  5. 파일을 저장하고 닫은 다음 터미널을 닫으십시오.
  6. 이제 터미널 열기는 다시 g++ filename.cpp

그게 전부에 의해 11 개 프로그램을 간단하게 C++를 컴파일합니다. 기본적으로 C++ 11 표준으로 컴파일됩니다.

참고 : 위에서 언급 한 옵션을 따르는 경우이 아닌 C++ (11 개) 프로그램을 컴파일하려면, 당신은 사용할 필요가

g++ --std=c++98 filename.cpp 
+0

확인. 감사. 하지만 마지막 노트에서 비 C++ 11 프로그램을 컴파일하면 명령이 변경된다는 것을 언급했습니다. 그러나 모든 버전이 이전 버전과 호환되지는 않습니다. 따라서 C++ 11 컴파일러는 C++ 11 특정 명령을 사용하지 않고도 프로그램을 컴파일해야합니다. –

관련 문제