将 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.a
到 Build Phases -> Other Linker Flags
中的完整路径 /usr/foo/bar/libboost_X.a
似乎解决了问题。
【讨论】:
以上是关于将 boost 二进制文件嵌入到 xcode 项目中的主要内容,如果未能解决你的问题,请参考以下文章
iOS 应用程序的 Xcode 单元测试中的链接问题与嵌入式 C++ 代码
Xcode 11.3.1 没有将二进制第三方框架嵌入到包(IPA)中[重复]