我正在为项目实现一个列表类,我对如何设置我的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
答案 0 :(得分:1)
你的makefile没有任何问题。问题是你的gcc版本是工具旧的-std=c++11
选项!直到4.7才得到补充。 gcc 4.4甚至没有那么多C++11 support,所以这似乎是升级的好机会。
最新版本为5.2,或者如果您想保持ABI兼容性,4.9.3。 4.8.1我认为是功能完整的第一个版本,因此没有理由从低于此开始。