添加对C 2011的编译器支持
Add compiler support for c++ 2011
我尝试使用Opendavinci的使用来编译用于TORC的机器人。问题是每次我尝试编译它
#error This file requires compiler and library support for the ISO C++ 2011 standard
出现。显而易见的解决方案是添加支持,但是我有一个复杂的makefile,所以我不知道如何解决这个问题。
有什么方法可以在不更改makefile的情况下添加支持?我读到有关COUD帮助我的CXXFLAG,但我不明白它是如何工作的。
ubuntu的编译器为G 5.4.0
felix@ubuntufelix:/usr/src/torcs/torcs-1.3.7/src/drivers/bt$ make
g++ -I/usr/src/torcs/torcs-1.3.7/export/include -I/usr/src/torcs/torcs-1.3.7 -g -O2 -Wall -fPIC -fno-strict-aliasing -O2 -DUSE_RANDR_EXT -DGL_GLEXT_PROTOTYPES -Wall -fPIC -fno-strict-aliasing -O2 -DUSE_RANDR_EXT -DGL_GLEXT_PROTOTYPES -D_SVID_SOURCE -D_BSD_SOURCE -DSHM -DHAVE_CONFIG_H -c driver.cpp
In file included from /usr/include/c++/5/array:35:0,
from driver.h:15,
from driver.cpp:1:
/usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support
没有完全标准的构建分布式软件的方法,但是应该在发行版中是 README
或 INSTALL
文件,这给出了更多或无用的精确指令。理想情况下,发行版带有配置脚本,安装过程由./configure; make; make install
组成,可能具有对./configure
给出的每分配特殊选项。这里的基本过程是./configure
脚本将合适的值编辑到Makefile.in
中以生成Makefile
,但是此类脚本可以任意复杂。当然,事情很少如此简单,并且从源头构建复杂的软件可能是一个技术挑战(这就是为什么包装管理人员是一件好事的原因)。
如果没有这样的安装说明(您是否仔细检查了?),那么您应该回到软件分发点并在此寻求帮助(您可以有一个提示当您这样做时,您的问题的责备 - 每个人,即使是beta pre-beta软件,都应告诉用户如何构建事物)。
但是,如果您被高高干燥,那么以下内容应大致指示下一步的位置:
您需要在编译器的调用中添加一个选项,以告诉它以支持C 2011功能(我敢肯定G 5.4具有这些功能,但默认情况下没有启用)。
您可以通过将-std=c++11
选项添加到编译器标志中,以及您测量的CXXFLAGS
Makefile变量的操作方式(注意:CXXFLAGS
是可能的/常规名称)变量,但这不是不可侵犯的规则)。
取决于makefile的结构如何,您可以以多种方式添加或调整该变量。
- 编辑makefile - 在makefile中搜索
CXXFLAGS
,并在该定义中添加-std
选项。 - 您将能够重新定义Make命令行上的变量:
make CXXFLAGS=-std=c++11
,但这将踩在Makefile中的任何定义上,这可能很重要。 - Makefile可能是结构的,以便定义包括
CXXFLAGS=-foo -bar $(EXTRA_CXXFLAGS)
,这是精确的,因此您可以使用make EXTRA_CXXFLAGS=-std=c++11
调用MAKE。 - 如果构建该软件有
./configure
步骤,则在执行此步骤时可能有一个选项可供./configure
(在此听起来不像情况)。
但一种或另一种方式,您的目标是在Makefile生成的编译器调用中出现-std=c++11
。请注意,如果将-n
选项提供给make
,则它将向您展示它会产生的命令,而无需实际做任何事情。
玩得开心。
- 如何检测VS C++编译器是否支持C++11?
- Clang编译器不支持aarch64-apple-darwin上的-fxray-instrument
- 如何使用MinGW编译器和SSL支持静态编译Qt
- 张量流错误 此文件需要编译器和库支持 ISO C++ 2011 标准
- 没有编译器支持Constexpr Memcpy的bit_cast可能吗?
- 英特尔C++编译器 19.0 测试版中删除了对英特尔®图形技术的卸载支持
- 多变量初始化编译器支持
- 支持与参数有关的查找的编译器
- C++编译器不支持C++11(例如std::unique_ptr)构建OpenWrt
- 添加对C 2011的编译器支持
- 哪些适用于 Windows 的 C++11 编译器支持新的类型特征,如"is_nothrow_move_constructible"?
- 为什么C++11编译器支持仍然需要一个标志
- 默认构造函数的宏可能,等待编译器支持
- 哪些编译器支持 std::filesystem
- android NDK编译器支持内联汇编吗?(例如asm或__asm关键字?)
- 哪个编译器支持带默认参数的函数指针
- 如何判断编译器支持哪个版本的ISO C++标准
- 编译器支持STL容器中的有状态分配器
- visualstudio2010-有没有一个列表,说明哪些编译器支持C++标准的哪一部分
- 我如何知道编译器支持什么标准格式