【问题标题】:How to compile C++11 in Eclipse on Ubuntu [duplicate]如何在 Ubuntu 上的 Eclipse 中编译 C++11 [重复]
【发布时间】:2012-08-29 00:06:22
【问题描述】:

可能重复:
Eclipse CDT C++11/C++0x support

我尝试了所有方法来编译 C++11 代码,即 std::unique_ptr,但它永远无法编译。

我关注了thisthis,但它仍然无法编译。我还安装了 gcc 4.7,并确保它已添加到我的 eclipse c++ 项目的包含目录中,但它仍然无法正常工作!!

请问有什么遗漏吗?

【问题讨论】:

  • 在命令行中添加-std=c++11
  • @AhmedFakhry 听起来 Eclipse 没有使用您安装的 GCC 4.7。
  • 尝试在命令行运行“g++ --version”,看看4.7是否真的是“默认”编译器。如果没有,您必须以某种方式告诉 Eclipse 使用它,或者以某种方式告诉 Ubuntu 系统将“g++”制作为 4.7 版本。
  • @AhmedFakhry:您是否 #include <memory> 并将名称限定为 std::unique_ptr
  • @AhmedFakhry 包含目录仅将其指向正确的头文件。应该有一些其他选项可以将它指向正确的二进制文件(我不知道那个选项会在哪里,我对 Eclipse 不是很熟悉)。

标签: c++ eclipse ubuntu c++11 eclipse-cdt


【解决方案1】:

GCC 默认使用哪种语言标准取决于它的编译方式,但大多数发行版仍将其设置为类似于 C++ 的 gnu++98。要使用 C++11,您必须传递以下语言标准选项之一:

g++ --std=c++0x     # <= 4.6.*

g++ --std=c++11     # >= 4.7.* (but c++0x is still accepted)

使用唯一指针:

#include <memory>

std::unique_ptr<base[]> AllYourBase(::new base[1024]);

【讨论】:

    猜你喜欢
    • 2021-01-02
    • 1970-01-01
    • 2017-07-17
    • 2012-01-14
    • 2012-11-20
    • 2017-10-27
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多