使用iOS Boost :: Geometry(1.53)

时间:2013-04-12 15:44:16

标签: ios xcode boost geometry boost-geometry

我想在我的iOS项目中使用Boost :: Geometry Library。经过一天的几次尝试,我在这里。

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

这就是我所做的:

  1. 已下载Boost 1.53.0
  2. boost根文件夹提取到libs/boost文件夹。因此,boost root的路径是project / libs / boost / boost(其中包含geometry
  3. 为xcode添加了新的boost文件夹
  4. 在构建/目标中,将Header Search Path设置为
    • “$(PROJECT_NAME)/../库/升压”
    • “$(PROJECT_NAME)/库/升压”
    • “$(PROJECT_NAME)/../库/升压/升压”
    • “$(PROJECT_NAME)/库/升压/升压”
  5. 出现以下编译器错误:
    • #include "boost/[geometry]/geometry.hpp"抛出“未找到boost / geometry.hpp文件”
    • #include "geometry.hpp"在geometry.hpp中抛出错误“boost / geometry / core / cs.hpp file not found”
  6. 这是我的项目结构:

    proj
     |--- classes
     |--- ios
     |--- libs
     |      |--- cocos2dx
     |      |--- CocosDenshion
     |      +--- boost
     +--- res
    

    我错过了什么?

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

虽然您可以将整个boost存储库添加为项目的已接受答案,但这需要很长时间才能编译。

更强大和解耦的方法是使用静态库。

为此,您可以使用ofxiOSBoost静态库和标题:

(适用于iOS 6,iOS 7,iOS 8 +)

发布Boost 1.57.0 libc ++(c ++ 11),libstdc ++,包括构建脚本

https://github.com/danoli3/ofxiOSBoost