c++11 - 如何在 gcc 中启用 C++11?

标签 c++11 g++

我使用 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/

相关文章:

c++ - 从 int 到 shared_ptr 的隐式转换

c++ - OpenMP 任务等待不工作

C++11 数组初始化不会调用复制构造函数

c++ - 为什么这是部分特化? (我能做什么?)

c++ - 添加 -l 标志*在*其余标志之后

x86 - _mm256_testz_pd 不工作?

c++ - 错误与否?带有 std::string 的 Visual Studio 2013 预览 std::vector 初始值设定项列表

c++ - 为什么不能实例化带有 "non const"复制构造函数的对,而没有实例化一对是可能的?

c++ - 理解g++编译前端生成的抽象语法树

c++ - 错误 :expected unqualified-id before '=' token