1. ホーム
  2. c++11

[解決済み] gccでC++11を有効にするにはどうしたらいいですか?

2022-08-05 16:51:38

質問

gcc 4.8.1 を使っています。 http://hpc.sourceforge.net を Mac OSX Mountain Lion で使用しています。を使用する C++ プログラムをコンパイルしようとしています。 to_string 関数で <string> . フラグを使用する必要があります。 -std=c++11 を毎回使用する必要があります。

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

このフラグをデフォルトで入れる方法はないでしょうか?

どのように解決するのですか?

H2CO3の言う通り、CXXFLAGSに-std=c++11を設定したmakefileを使用することができます。 makefileとは、プログラムをどのようにコンパイルするかという指示を書いた簡単なテキストファイルです。Makefile (大文字のM)という名前のファイルを新規に作成します。あなたのコードを自動的にコンパイルするには make コマンドをターミナルで入力します。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、include、buildディレクトリをサポートするようにmakefileを簡単にいじることができます。

編集 : g++のバージョンが最新でないため、デフォルトのc++コンパイラを変更しました。clang++では、このmakefileは正常に動作します。