我下载了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我是全新的。
答案 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