使用XCODE 4.6.1中的boost - 什么是正确的构建设置?

时间:2013-05-27 05:33:54

标签: c++ boost osx-mountain-lion xcode4.6

我下载了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”解析问题预期成员名称或';'在行的声明说明符之后:

模板< typename Lhs,typename Rhs>

struct operator_exists {

...

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

4 个答案:

答案 0 :(得分:1)

我对这个问题有点晚了,但是如果有其他人有这个问题......

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

快速解决方法是在Objective C源文件中包含boost标头之前插入“#undef check”,因为它似乎是“check”是Objective C中的保留字。

答案 1 :(得分:0)

你可以确保设置编译器类型是GNU98或类似的东西,XCODE4默认编译器可能符合C ++ 11

答案 2 :(得分:0)

我正在使用XCODE的提升,我同意fatih_k。我将所有的c和c ++语言设置设置为GNU99和GNU ++ 98。我还将'compile sources as'选项设置为'根据文件类型'。

我发现我创建的项目总是默认使用Objective C,所以可能只需要完成项目设置并确保为C ++而不是Objective C配置了所有内容。

我还没有尝试使用C ++ 11选项。

答案 3 :(得分: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