5

我下载了 boost 1.53 并提取到 Users/user/Desktop/boost_1_53_0 我按照以下说明成功地将 boost 构建为静态库:http: //libcinder.org/docs/v0.8.5/_cinder_boost.html

我将 XCODE 的“构建设置”“标题搜索路径”更改为 /Users/user/Desktop/boost_1_53_0,并将“库搜索路径”更改为 Users/user/Desktop/boost_1_53_0/stage/lib

然后我构建并得到错误:

我得到的第一个错误是“has_binary_operator.hpp”解析问题预期的成员名称或';' 在行的声明说明符之后:

模板<类型名Lhs,类型名Rhs>

结构运算符_存在 {

...

有没有人有关于构建设置应该是什么的提示?该项目包含一些可可/目标 C (.m) 文件和其他使用 boost 的 C++(.mm) 文件。我对尝试在 OSX 山狮和 XCODE 4.6.1 下使用 boost 完全陌生。

4

4 回答 4

2

这个我有点晚了,但万一其他人有这个问题......

我在使用 Objective C 的项目中遇到了这个问题。我会在 has_binary_operator.hpp 和 lexical_cast.hpp 中遇到解析和语义问题。

一个快速修复是在 Objective C 源文件中包含 boost 标头之前插入“#undef check”,因为它看起来“check”是 Objective C 中的保留字。

于 2014-10-02T19:43:21.323 回答
0

Xcode 4.x 默认编译器是 apple llvm,默认使用 libc++。您可以更改 Xcode 中的设置

将 stdlib 更改为 libc++

一个。从 Xcode 中选择目标并转到 BuildSettings 选项卡。

湾。转到 Apple LLVM 编译器 4.2 - 语言选项

将选项从 libc++ 更改为 libstd

更改编译器

一个。从 Xcode 中选择目标并转到 BuildSettings 选项卡。

湾。向下构建选项

更改选项 C/C++/Objective C - 默认选项将为“Apple LLVM 编译器 4.2” 将其更改为 g++ 4.2

于 2013-05-28T13:33:31.687 回答
0

您可以确保将编译器类型设置为 GNU98 或类似的,XCODE4 默认编译器可能符合 C++11

于 2013-05-27T06:09:09.360 回答
0

我正在使用来自 XCODE 的 boost,我同意 fatih_k。我将所有 c 和 c++ 语言设置都设置为 GNU99 和 GNU++98。我还将“将源编译为”选项设置为“根据文件类型”。

我发现我创建的项目总是默认使用 Objective C,所以也许只需检查你的项目设置并确保你已经为 C++ 而不是 Objective C 配置了所有内容。

我还没有尝试过带有 boost 的 C++11 选项。

于 2013-05-27T06:34:43.817 回答