所以我之前遇到过一些问题,但我删除了我的旧问题并将其更新为这个问题。事情是这样的:
我想在我的 iOS Swift 项目中使用 C++ 库。在这个社区的帮助下,我将我的库编译为静态库(.a 文件)。现在我创建了一个新项目来测试这一点,我只执行了以下步骤:
1. Create 新的斯威夫特项目
2. Under 构建阶段 -> 将二进制文件与库链接添加我的图书馆(like so https://i.stack.imgur.com/nEOFd.png)
3. Add a 新的 C++ 文件没有头文件并且添加桥接标头内容如下:
//包装器.cpp
extern "C" void test()
{
//Just to test the swift - c++ connection later this file
//shall import the main header of the library.
}
//CAS测试桥接头.h
void test();
但现在,当我编译时我得到这个错误 https://i.stack.imgur.com/3Do3a.png(您还可以在左侧看到我的项目层次结构)。
提前感谢您的所有帮助!
要让 Xcode 找到该库,您至少有两个选择:
在构建设置下设置库搜索路径。这可能会很混乱,因为您必须确保为正确的架构构建库,例如模拟器或实际设备,并使用适当的路径。
创建一个新的工作区,将库项目和应用程序项目都添加到工作区中。在应用程序目标的构建阶段中,单击“将二进制文件与库链接”部分中的 + 号后,在弹出的对话框中选择静态库 (.a) 文件。 Xcode 将为正确的架构构建库,并将应用程序与正确的静态库链接起来。
现在,无论您选择上面的选项 1 还是选项 2,构建正确架构的库都可能很棘手。有几点值得尝试:
- 在 Xcode 中创建外部构建系统项目并使用 makefile
随库源一起提供。 (文件 -> 新建 -> 项目... ->
跨平台。)
- 在 Xcode 中创建一个 Cocoa Touch 静态库项目。 (文件->
新建 -> 项目... -> iOS。)您需要添加库
项目的来源。这可能是您最好的选择,如果
库的构建并不太复杂。
还可以选择将 C++ 库源直接包含到 Swift 项目中。
看看这篇文章是否有帮助:编译外部 C++ 库以用于 iOS 项目 https://stackoverflow.com/questions/27016612/compiling-external-c-library-for-use-with-ios-project.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)