IT

gcc에서 C ++ 11을 어떻게 활성화합니까?

lottoking 2020. 8. 8. 12:06
반응형

gcc에서 C ++ 11을 어떻게 활성화합니까?


Mac OSX Mountain Lion 에서 http://hpc.sourceforge.net의 gcc 4.8.1을 사용 합니다. 에서 to_string함수 를 사용하는 C ++ 프로그램을 사용할 수 <string>있습니다. -std=c++11매번 플래그 를 사용합니다 .

g++ -std=c++11 -o testcode1 code1.cpp

기본적 으로이 플래그를 포함하는 방법이 있습니까?


H2CO3이 맞습니다. CXXFLAGS가 -std = c ++ 11로 하나의 메이크 파일을 사용할 수 있습니다. 메이크 파일은 간단한 파일 방법에 대한 지침이있는 간단한 텍스트입니다. Makefile (대문자 M)이라는 새 파일을 만듭니다. 코드를 자동으로 선택하여 터미널에 make 명령을 입력 합니다. 설치해야 할 수도 있습니다.

다음은 간단한 것입니다.

CXX=clang++
CXXFLAGS=-g -std=c++11 -Wall -pedantic
BIN=prog

SRC=$(wildcard *.cpp)
OBJ=$(SRC:%.cpp=%.o)

all: $(OBJ)
    $(CXX) -o $(BIN) $^

%.o: %.c
    $(CXX) $@ -c $<

clean:
    rm -f *.o
    rm $(BIN)

모든 .cpp 파일이 makefile과 디렉토리에 디렉토리에서 가정합니다. 그러나 src를 지원하고 디렉토리를 포함하고 빌드하도록 makefile을 만들 수 있습니다.

편집 : 기본 C ++ 컴파일러를 수정했는데 g ++ 버전이 최신이 아닙니다. clang ++에서는 메이크 파일이 잘 작동합니다.


앞서 언급했듯이-프로젝트의 경우 Makefile또는 다른 경우에는 다른 플래그도 지정해야하는 프로젝트 구성 문제입니다.

그러나 일반적으로 작성하는 일회성 프로그램은 g++ file.cpp && ./a.out어떻습니까?

글쎄, 난 몇 가지를하는 것이 훨씬 더 #pragma어쩌면 소스 레벨, 또는 기본 확장에 설정하는-말 .cxx이나 .C11또는 무엇이든 기본적으로 트리거를. 그러나 현재의 기능이 없습니다.

그러나 아마도 수동 환경 (예 : 쉘)에서 작업하고 메시지를받을 수 있습니다 .bashrc.

alias g++11="g++ -std=c++0x"

또는 최신 G ++의 경우 (그리고 "진짜 C ++ 11"을 느끼고 싶을 때)

alias g++11="g++ -std=c++11"

당신이 g++C ++ 03 그렇게 싫어한다면을 당신 그 자체로 별칭을 가질 수도 있습니다 .)


파일을 사용하여 할 수있는 사양을 생각합니다.

MinGW에서
gcc -dumpspecs> specs를 사용할 수 있습니다.

그것이 말하는 곳

*cpp:
%{posix:-D_POSIX_SOURCE} %{mthreads:-D_MT}

당신은 그것을

*cpp:
%{posix:-D_POSIX_SOURCE} %{mthreads:-D_MT} -std=c++11

그런 다음
/ mingw / lib / gcc / mingw32 / <버전> / ​​specs에 배치합니다.

MinGW 빌드 없이도 똑같이 할 수 있는지 확신합니다. 그래도 사양 파일을 어디에 둘지 확실하지 않습니다.

폴더는 아마도 / gcc / lib / 또는 / gcc /입니다.

참고 URL : https://stackoverflow.com/questions/16886591/how-do-i-enable-c11-in-gcc

반응형