将 boost 二进制文件嵌入到 xcode 项目中

Posted

技术标签:

【中文标题】将 boost 二进制文件嵌入到 xcode 项目中【英文标题】:Embed boost binaries to xcode project 【发布时间】:2017-09-01 00:12:19 【问题描述】:

我目前正在使用 boost 库在 OSX 中开发 C++14 项目。

我能够编译和链接项目,包括。 boost 库。

但是,在尝试在另一台计算机上运行可执行文件时,我需要先安装 boost.. 使用 brew install boost

是否可以通过某种方式移除这种依赖关系?

【问题讨论】:

静态链接-lboost_whatever而不是libboost_whatever.a @HenriMenke 我删除了 -lboost 标志并添加到 Build Phases -> Link Binary With Libraries。 .a 文件.. 它在本地工作,但在另一台 Mac 上我仍然收到这样的错误:dyld: Library not loaded: /usr/local/opt/boost/lib/libboost_date_time.dylib 这意味着您没有.a 文件静态链接,但仍然是动态链接。仔细检查您的构建设置。 【参考方案1】:

好的,所以我设法解决了这个问题。首先,我尝试将 .a 文件(而不是 dylib 文件)引用到项目中。

但它似乎仍然没有工作,只有当我改变路径时 libboost_X.aBuild Phases -> Other Linker Flags 中的完整路径 /usr/foo/bar/libboost_X.a 似乎解决了问题。

【讨论】:

以上是关于将 boost 二进制文件嵌入到 xcode 项目中的主要内容,如果未能解决你的问题,请参考以下文章

iOS 应用程序的 Xcode 单元测试中的链接问题与嵌入式 C++ 代码

什么是Xcode中的嵌入式二进制文件?

Xcode 11.3.1 没有将二进制第三方框架嵌入到包(IPA)中[重复]

删除“DerivedData”后,Xcode 不会添加“嵌入式二进制”

嵌入式二进制文件和链接框架之间有什么区别

Xcode6:嵌入式二进制文件未使用与父应用程序相同的证书进行签名