ios - Boost::Geometry (1.53) 与 iOS

标签 ios xcode boost geometry boost-geometry

我想在我的 iOS 项目中使用 Boost::Geometry 库。经过一天的几次尝试后,我来到了 SO。

由于 Geometry 是一个仅限 Header 的库,因此我认为不需要二进制文件,只需添加 *.hpp 文件就足够了。我对吗?

这是我所做的:

  • 已下载 Boost 1.53.0
  • 提取boost根文件夹到 libs/boost文件夹。所以 boost root 的路径是 project/libs/boost/boost (其中包含 geometry 等)
  • 将新的 boost 文件夹添加到 xcode
  • 在构建/目标中,设置 Header Search Path
  • “$(PROJECT_NAME)/../libs/boost”
  • "$(PROJECT_NAME)/libs/boost"
  • “$(PROJECT_NAME)/../libs/boost/boost”
  • “$(PROJECT_NAME)/libs/boost/boost”
  • 得到以下编译器错误:
  • #include "boost/[geometry]/geometry.hpp"抛出“未找到 boost/geometry.hpp 文件”
  • #include "geometry.hpp"在geometry.hpp
  • 中抛出错误“boost/geometry/core/cs.hpp file not found”

    这是我的项目结构:
    proj
     |--- classes
     |--- ios
     |--- libs
     |      |--- cocos2dx
     |      |--- CocosDenshion
     |      +--- boost
     +--- res
    

    我错过了什么?

    最佳答案

    我现在不仅成功地集成了 Boost::Geometry,而且还集成了整个 Boost 库。以下是要遵循的正确步骤:

  • 下载 Boost 1.53.0
  • 将 boost 根文件夹提取到 libs/boost 文件夹。所以 boost root 的路径是 project/libs/boost/boost (它不需要是项目的一部分,它可以在其他地方。Boost 文件不会添加到 xcode,但会通过正确设置 Header Search Path 来引用)
  • 在 build/target 中,将 Header Search Path 设置为 boost 文件夹,在我的情况下是 $(PROJECT_NAME)/../../libs/boost
  • 然后可以添加标题,如 #include <boost/geometry.hpp>

  • 由于 Boost::Geometry 是一个仅 Header 的包,因此可以正常工作。但是对于需要编译的包,要采用不同的方法。

    关于ios - Boost::Geometry (1.53) 与 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15975606/

    相关文章:

    ios - 二进制表达式的操作数无效错误

    xcode - 您的 session 已过期。请登录,Xcode 8.2在添加帐户时给出此错误

    objective-c - XCode:为什么我的事件没有被添加到日历中?

    ios - 在代码中启动 UITalbleViewController

    ios - 如何将 2 个 NSDictionary Contain 数组合并到一个 NSMutableArray

    iphone - UIWebView 的缩放范围非常有限

    ios - 模块 'SocketIO' 未使用库进化支持进行编译;使用它意味着无法保证框架的二进制兼容性

    c++ - Boost 将对象序列化为 json

    c++ - 使用 try_lock boost 锁定

    c++ - boost::asio::yield_context 可以设置 std::error_code 而不是 boost::system::error_code 吗?