需要帮助构建我的Makefile

时间:2015-10-03 19:54:22

标签: c++ c++11 makefile

我正在为项目实现一个列表类,我对如何设置我的makefile感到很困惑。我在Xcode IDE中完成了所有编码,它在那里完美编译,但我需要确保我可以在unix上编译我的程序。我在我的代码中使用了c ++ 11特性,并且在我的makefile -std = c ++ 11中正确地写了标记但是它没有得到识别。我将List.hpp,List.h,test_list.cpp全部放在与make文件相同的目录中。我需要在makefile中编写不同的东西,因为我的list类的实现是hpp文件而不是cpp文件吗?

这是我一字不漏的错误:

g++ -std=c++11 -Wall -pedantic -g -o proj2.x test_list.cpp
cc1plus: error: unrecognized command line option "-std=c++11"
make: *** [proj2.x] Error 1

有人可以帮我解释我的makefile出错了吗?如果还有什么我应该发布以帮助某人回答我的问题,请告诉我。

这就是我所拥有的:

C=g++
CXX=g++
CXXFLAGS=-std=c++11 -Wall -pedantic

proj2.x: test_list.cpp
    $(CXX) $(CXXFLAGS) -g -o proj2.x test_list.cpp

clean:
    rm *.o *.x

1 个答案:

答案 0 :(得分:1)

你的makefile没有任何问题。问题是你的gcc版本是工具旧的-std=c++11选项!直到4.7才得到补充。 gcc 4.4甚至没有那么多C++11 support,所以这似乎是升级的好机会。

最新版本为5.2,或者如果您想保持ABI兼容性,4.9.3。 4.8.1我认为是功能完整的第一个版本,因此没有理由从低于此开始。