所以我之前遇到过一些问题,但我删除了我的旧问题并将其更新为这个问题。开始了:
我想在我的 iOS Swift 项目中使用 C++ 库。在这个社区的帮助下,我将我的库编译为静态库(.a 文件)。现在我创建了一个新项目来测试它,我只做了以下步骤:
1. 创建新的 Swift 项目
2. 在 Build Phases -> Link Binary with Libraries 添加我的库 ( like so )
3. 添加一个没有头文件的新 C++ 文件,并添加一个桥接头文件,内容如下:
//Wrapper.cpp
extern "C" void test()
{
//Just to test the swift - c++ connection later this file
//shall import the main header of the library.
}
//CAS Test-Bridging-Header.h
void test();
但是现在,当我编译时我得到 this error (您还可以在左侧看到我的项目层次结构)。
提前感谢您的帮助!
最佳答案
要让 Xcode 找到您至少有两个选择的库:
在build设置下设置库搜索路径。这可能很麻烦,因为您必须确保为正确的体系结构构建库,例如模拟器或实际设备,并使用适当的路径。
创建一个新的工作区,将库项目和应用程序项目添加到工作区。在 Build Phases for the app target 中,在 Link Binary with Libraries 部分单击 + 号后弹出的对话框中选择静态库 (.a) 文件。 Xcode 将为正确的架构构建库,并将应用程序与正确的静态库链接。
现在,无论您选择上面的选项 1 还是选项 2,为正确的架构构建库都可能很棘手。一些尝试:
- 在 Xcode 中创建一个外部构建系统项目并使用 makefile 库源附带的。 (文件 -> 新建 -> 项目... -> 跨平台。)
- 在 Xcode 中创建一个 Cocoa Touch 静态库项目。 (文件 -> 新建 -> 项目... -> iOS。)您将需要添加库 项目的来源。如果 图书馆的构建并不太复杂。
还可以选择将 C++ 库源代码直接包含到您的 Swift 项目中。
看看这篇文章是否有帮助:Compiling external C++ library for use with iOS project .
关于c++ - Xcode 找不到 C++ 静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42886756/