需要帮助构建我的Makefile

Need help constructing my Makefile

本文关键字:我的 Makefile 构建 帮助      更新时间:2023-10-16

我正在为一个项目实现一个列表类,我真的很困惑如何设置我的makefile。我在Xcode IDE中编写了所有代码,它在那里编译得很好,但我需要确保我能在unix上编译我的程序。我在我的代码中使用了c++11的特性,并在我的makefile -std=c++11中正确地编写了标志,但它没有被识别。我的List.hpp, List.h, test_list.cpp都在与make文件相同的目录中。我是否需要在我的makefile中写一些不同的东西,因为我的列表类的实现是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

您的makefile没有任何问题。问题是您的gcc版本太老,无法使用-std=c++11选项!直到4.7才加入。无论如何,gcc 4.4甚至没有那么多的c++ 11支持,所以这似乎是一个很好的升级机会。

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