我将Boost构建为iOS的框架。这当前安装在Applications / Xcode.app / Contents / Developer / Library / Frameworks /中。
当我创建一个“手工生成”的XCode项目时,我使用这个框架没有问题。
我现在正尝试使用CMake生成XCode项目。我找到了这个有用的交叉编译工具链(https://github.com/cristeab/ios-cmake)。只要我不包括
,这就有效find_package( Boost )
但是当上面一行添加到我的CMakeLists.txt文件中时,我得到一个“Boost_INCLUDE_DIR-NOTFOUND”
所以问题是:有没有人成功使用CMake和Boost for iOS?如果是这样的话,非常感谢任何有关如何处理它的帮助。
我发现另一个SO用户尝试在此处执行类似操作:How to find a iOS/mac OS X framework via Cmake
但除了使用“CMAKE_FRAMEWORK_PATH”之外,它没有提供太多细节。
所以非常感谢任何帮助。
...谢谢
答案 0 :(得分:0)
find_package
找不到为ios构建的增强功能(已在cmake 3.13和3.14上测试)
可以通过以下方式解决。
使用https://github.com/faithfracture/Apple-Boost-BuildScript
将BOOST_ROOT
设置为Apple-Boost-BuildScript/src/boost_x_xx_x
对于iOS:
set(Boost_INCLUDE_DIRS "${BOOST_ROOT}")
set(Boost_LIBRARIES "${BOOST_ROOT}/iphone-build/stage/lib/libboost_date_time.a")
set(Boost_LIBRARIES "${Boost_LIBRARIES};${BOOST_ROOT}/iphone-build/stage/lib/libboost_regex.a")
set(Boost_LIBRARIES "${Boost_LIBRARIES};${BOOST_ROOT}/iphone-build/stage/lib/libboost_system.a")
iOS模拟器:
set(Boost_INCLUDE_DIRS "${BOOST_ROOT}")
set(Boost_LIBRARIES "${BOOST_ROOT}/iphonesim-build/stage/lib/libboost_date_time.a")
set(Boost_LIBRARIES "${Boost_LIBRARIES};${BOOST_ROOT}/iphonesim-build/stage/lib/libboost_regex.a")
set(Boost_LIBRARIES "${Boost_LIBRARIES};${BOOST_ROOT}/iphonesim-build/stage/lib/libboost_system.a")
答案 1 :(得分:0)
我希望还不晚:) 我碰到几乎相同的问题,find_package总是抱怨找不到lib,即使搜索路径正确,请注意,Android NDK也存在类似的问题
对于ios,我建议:
通过HashSet
启用boost调试,然后检查指定的路径是否正确,请参考此链接以获取更多信息
How can I get CMake to find my alternative Boost installation?
尝试使用set(Boost_DEBUG ON)
而不是find_host_package
,我在ios.cmake中找到了一些线索,可能会导致问题:
find_package