命名空间'std'中没有名为'forward'的成员。

5
在XCode中,我最近制作并测试了一个使用boost的处理库。我在IDE中设置了一个基本项目,编写代码,并且构建正常。
现在我想在另一个应用程序中使用该库。另一个应用程序的xcode项目是使用第三方工具自动创建的。当我尝试将基于boost的库包含在此其他应用程序中时,我会收到错误消息,指出. . .
``` 命名空间'std'中没有名为'forward'的成员 ```
还有一行. .
#include <tuple>

出现预处理错误

'tuple'文件未找到

由于原始库在我的机器上可以构建,因此错误必须是由于构建设置的差异造成的,但我无法看到差异,并且不知道比较2个不同项目的构建设置的好方法。有人能推荐可能导致问题的构建设置吗?

编辑:

在两个项目中,以下设置相同:

  • C/C++/Objective-C编译器=Apple LLVM Compiler 3.0

  • C++语言方言=编译器默认设置

  • C++标准库=编译器默认设置

编辑2 [已解决]:

  • 我仍然在目标设置中启用了C++11方言。唉!

你是否从XCode的偏好设置中的“下载”选项卡中安装了“命令行工具”?由于某种原因,许多C++相关的内容似乎不再随默认的XCode安装一起提供了。 - pmdj
1个回答

6

您的项目编译为C++11,并使用C++11标准库(std::forward和头文件是新的)。 原始项目似乎使用C++03及其标准库进行编译,因此这些新功能不可用。


我已经检查了语言/库设置,它们看起来是相同的(请参见编辑)。我是否错过了其他设置? - learnvst

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接