无法使用GCC 5.1工具链编译C ++ 11源

蒂斯

我正在尝试在Ubuntu上使用GCC 5.1编译使用C ++ 11功能编写的库。但是,它std::unique_ptr没有定义抱怨

gcc (Ubuntu 5.1.0-0ubuntu11~14.04.1) 5.1.0
g++ (Ubuntu 5.1.0-0ubuntu11~14.04.1) 5.1.0

CXX标志:

-std=c++11 -Wall -Wextra -Weffc++ -pedantic

输出:

error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
         std::unique_ptr< detail::RegexImpl > m_pimpl;

但是,我可以在OSX上编译完全相同的代码。

Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn)

CXX标志:

-stdlib=libc++ -std=c++11 -Wall -Wextra -Weffc++ -pedantic

我究竟做错了什么?

轨道轻赛

您没有做错任何事。图书馆的资料缺少#include <memory>

这只是库作者的不幸错误。人们依靠某些标准标,而恰巧在其特定实现中包括其他标准标头,却没有检查他们是否使用了所有#include应有语句,这是令人惊讶的普遍现象

您可以暂时破解,#include但是从长远来看,如果项目接受补丁,则应该向库作者提出一个错误,甚至可以贡献一个补丁。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用(自定义)GCC 4.x或5.x时Boost Boost无法通过C ++ 11功能检查

在 docker gcc:5 镜像中编译 c++11

C / C ++ Cyanogenmod如何使用不同版本的工具链编译内核?

使用Nix打包CentOS5工具链依赖项

MacOS GCC工具链编译简单Hello World的问题

无法使用gcc-7进行编译

gradle无法使用工具链:“ JDK 8(1.8)”来定位平台:“ Java SE 11”

无法使用12c jar创建到Oracle 12c的Eclipse数据源。但是11g有效

如何使用旧版ABI与GCC 5编译boost?

如何使用自动工具使用clang和选项-std = c ++ 11编译项目

使用生成的NDK工具链无法构建C代码

yocto zeus 上的元工具链-qt5,gcc-cross-canatian-aarch64 失败

C代码:for循环使用gcc编译但无法运行

Go工具链编译期间如何使用GOARCH和GOOS?

如何使用Rustup删除Rust编译器工具链?

如何使用NetBSD构建交叉编译的NetBSD工具链

在 Corda 4.0 上使用金融工具应用程序启动节点时无法创建数据源 [errorCode=13ajh5q]

Maven编译时出现错误“不再支持源选项5。使用6或更高版本”

无法从引导加载程序(NASM + GCC工具链)调用实模式C函数

什么是GCC工具链?

由于C ++ 11错误而无法建立GCC

-std=c++11 在 gcc 4.8.1 上无法识别

如何将工具链交叉编译到ARMv5平台?

无法使用C ++ 11编译简单的Rcpp函数

Linaro工具链无法创建ARMv5二进制文件

如何使用gcc 4.4.7编译具有C ++ 11功能的C ++代码

如何在C#中解密JWE源(使用RSA1_5 A256CBC-HS512加密)?

Crosscompilation GCC工具链无法找到文件stdlib.h

使用GCC 4.8.5编译时C ++ 11 std :: this_thread :: sleep_until()挂起