Ubuntu Linux 上的 Makefile C++11 错误
Makefile C++11 errors on Ubuntu Linux
>我在 IDE CLion 中编写了一个应用程序。我正在尝试在Linux机器上创建一个Makefile。我使用模板生成文件来创建自己的生成文件,但是存在问题。请注意,有 3 个类称为报价、交易和信号。
CXX = g++
# mandatory build flags
CXXFLAGS = -O2 -Werror -std=c++11
# mandatory link flags
AM_LDFLAGS = -Wl,-as-neeeded
output: main.o quote.o trade.o signal.o
${CXX} ${AM_LDFLAGS} ${LDFLAGS} $(filter %.o,$^) -o $@
%: %.cpp
${CXX} ${AM_CXXFLAGS} ${CXXFLAGS} $< -c -o $@
quote.o: quote.cpp quote.h
trade.o: trade.cpp trade.h
signal.o: signal.cpp signal.h
当我运行生成文件时,我收到错误:
错误:#error 此文件需要 -std=c++11 或 -std=gnu++11 编译器选项。
然后,出现许多需要 C++11 支持的错误。例如,std::string
、 std::chrono
存在问题。我该如何解决这个问题?我要求有人修复代码。由于我今天刚开始学习MakeFile,我很可能不会理解您的技术建议。请帮忙。非常感谢!
编辑:按照以下建议操作后,我修复了上述错误。我现在收到以下错误:
g++ -02 -Werror -std=c++11 -c -o main.o main.cpp
g++ -02 -Werror -std=c++11 -c -o quote.o quote.cpp
g++ -02 -werror -std=c++11 -c -o trade.o trade.cpp
g++ -Wl, -as-need main.o quote.o trade.o signal.o -o output
/usr/bin/ld:无法识别 - 选项"需要"
collect2:错误:ld 返回 1 个退出状态
AM_CXXFLAGS
由automake
使用。您没有使用automake
,因此这没有任何作用。
将所有编译器标志仅放入CXXFLAGS
。
相关文章:
- C++11 中好友模板类的视觉C++错误
- 我将 Makefile 更改为 C++11 版本,但仍然收到列表初始值设定项错误
- C++ Visual Studio 错误:名称后跟'::'必须是类或命名空间名称 (DirectX 11)
- C++ 分段错误:11 错误,同时编码将两个数字相加的链接列表
- 分段错误:11 错误
- Cython -STD = C 11错误,使用C和C
- DirectX 11 错误等同于 DirectX 9
- 无法在 c++ 中声明动态整数数组,可能是 c++11 错误
- 分段错误:11 c++ 错误
- VS2010 和 VS2012 以及 C++11 错误 C2059:语法错误:"..."怎么走?
- 调用构造函数定义中的函数后收到Segmentation Fault 11错误
- DirectX 11.2 错误: X3501: 找不到'main'入口点
- 在终端中获取分段故障11错误
- Ubuntu Linux 上的 Makefile C++11 错误
- C++11 : 错误:“开始”不是“std”的成员
- 错误 11 错误 LNK2005:已在 MyForm.obj 中定义"class cv::Mat imageOutput" (?imageOutput@@3VMat@cv@@A)
- C++和 directx 11 错误,没有为 dxgi.dll 加载符号
- Python 的 Visual C++ 无法处理 c++11 错误 C2039:"data":不是 std::vector 的成员
- MVC 11.0 -错误的结构大小
- C++11:`错误:代码中')'标记之前应有主表达式',用于行扫描以查找最接近的对