gpt4 book ai didi

c++ - 你如何使用 Eclipse 编译 c++0x 代码?

转载 作者:行者123 更新时间:2023-11-28 03:06:55 24 4
gpt4 key购买 nike

由于我决定热情地投身于开源世界,所以我下载了面向 C/C++ 开发人员的 Eclipse IDE(Kepler Service Release 1)并安装了 minGW。

我使用 minGW 作为工具链创建了一个新项目,我可以使用 <iostream> 创建 hello world 程序,但如果我尝试创建一个 tuple 、智能指针或任何其他 c++0x 东西,我收到“找不到符号”错误:

#include <tuple>
int main(int in)
{
std::tuple<int> lameTuple; // symbol "tuple" could not be resolved
return 0;
}

我尝试添加 -std=c++0x到 GCC C++ 编译器工具设置中的其他标志,但这似乎没有帮助。有什么想法吗?

最佳答案

我也遇到过这个问题。在 Windows 上使用 Eclipse + Mingw GCC 是一个令人难以置信的......因为这样的随机问题而导致的异常设置。例如,我的工作区中有一个 C++11 项目,除了 std=c++11 或 gnu 标志外不需要任何变通方法,而其他项目无论如何都会完全死掉。

不幸的是,唯一的答案是我认为的 hack。如果您查看 Tuple header ,您会看到:

#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
#else

所以这里的答案(解决方案)就很明显了。在某处,无论是编译器标志还是 .cpp 文件中的定义,您都希望将 __cplusplus 定义为大于 201103L。我这样做是为了进入

Project Properties->C/C++ General->Paths And Symbols

然后,在“符号”选项卡下,我添加了一个新符号。对于符号名称,我使用了 __cplusplus,对于值,我使用了 201303L。这将强制索引器重新运行,届时 Eclipse 将正确使用 C++11 包含。

附带说明一下,我认为人们早就应该创建一个 Eclipse CDT + Mingw GCC 安装程序来正确设置所有内容。这个问题只是触及了您在使用此 IDE 和工具链时遇到的大量问题的表面,从错误版本的 Mingw 到 IDE 中糟糕的索引和解析。在那张纸条上,请始终确保您没有使用有缺陷的 Mingw 发行版。这也可能导致这些问题。

编辑#1
另请注意,即使使用此符号,您也应将 --std=X 标志作为编译器标志包含在“杂项”下。此符号仅供 IDE 解析具有正确 C++11 支持的 header 。

关于c++ - 你如何使用 Eclipse 编译 c++0x 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19450371/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com