Makefile支持c ++ 11

时间:2017-04-15 07:58:14

标签: c++ c++11 gcc makefile

我最近在C ++开始了一个小项目。我创建了一个简单的Makefile:

output: main.o google_api.o
    g++ main.o google_api.o -o output
    rm *.o
    clear
    ./output

main.o: main.cpp
    g++ -c main.cpp

test.o: google_api.cpp google_api.h
    g++ -c google_api.cpp

当我编译我的代码时,我得到了下一个错误 -

  

非聚合类型' vector'无法初始化         使用初始化列表

我正在检查此问题并发现我需要在makefile中添加-std = c ++ 11支持来解决问题。我将此命令添加到代码中:

  

g ++ -std = c ++ 11 main.o google_api.o -o output

但这不会有任何改变。如果有人能帮助我解决这个问题我会很高兴。感谢

1 个答案:

答案 0 :(得分:4)

改变这个:

main.o: main.cpp
    g++ -c main.cpp

为:

main.o: main.cpp
    g++ -std=c++11 -c main.cpp

您也可以使用此类内容作为Makefile的基础:

CXX=g++
CXXFLAGS=-g -Wall -MMD -std=c++11
LDLIBS=-lm # list libs here
output: main.o google_api.o
clean:
    $(RM) *.o *.d output
-include $(wildcard *.d)

stackoverflow上也有类似的问题:Makefile c++11 support