我使用 http://hpc.sourceforge.net 中的 gcc 4.8.1在 Mac OSX Mountain Lion 上。我正在尝试编译一个使用 to_string
的 C++ 程序函数位于 <string>
。我需要使用标志 -std=c++11
每次:
g++ -std=c++11 -o testcode1 code1.cpp
有没有办法默认包含此标志?
最佳答案
H2CO3 是正确的,您可以使用带有 -std=c++11 设置的 CXXFLAGS 的 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 位于同一目录中。但是您可以轻松地调整 makefile 以支持 src、包含和构建目录。
编辑:我修改了默认的 c++ 编译器,我的 g++ 版本不是最新的。使用 clang++ 这个 makefile 可以正常工作。
关于c++11 - 如何在 gcc 中启用 C++11?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16886591/