Xcode 找不到C++静态库

Xcode does not find C++ static library

本文关键字:静态 C++ 找不到 Xcode      更新时间:2023-10-16

所以我之前对此有一些问题,但我删除了我的旧问题并将其更新为这个问题。事情是这样的:

我想在我的 iOS Swift 项目中使用 C++ 库。在这个社区的帮助下,我将我的库编译为静态库(.a 文件)。现在我创建了一个新项目来测试它,我只做了以下步骤:

1. 创建新的 Swift 项目

2. 构建阶段下->将二进制文件与库链接添加我的库(如下所示)

3. 添加一个不带头文件的新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 Test-Bridging-Header.h

void test();

但是现在,当我编译时,我收到此错误(您还可以在左侧看到我的项目层次结构)。

提前感谢您的所有帮助!

要让 Xcode 找到库,您至少有两个选择:

  1. 在"生成设置"下设置库搜索路径。 这可能会很混乱,因为您必须确保为正确的架构(例如模拟器或实际设备)构建库,并使用适当的路径。

  2. 创建新工作区,将库项目和应用项目添加到工作区。在应用目标的"生成阶段"中,在单击"将二进制文件与库链接"部分中的 + 号后弹出的对话框中选择静态库 (.a) 文件。 Xcode 将为正确的架构构建库,并将应用程序与正确的静态库链接起来。

现在,无论您选择上面的选项 1 还是 2,为正确的体系结构构建库都可能很棘手。 可以尝试以下几种方法:

  • 在 Xcode 中创建外部构建系统项目并使用生成文件 随图书馆来源一起提供的。 (文件 -> 新建 -> 项目... ->跨平台。
  • 在 Xcode 中创建 Cocoa Touch Static Library 项目。 (文件 ->新建 -> 项目... -> iOS。 您将需要添加库 项目的来源。 这可能是你最好的选择,如果 库的构建并不太复杂。

还可以选择将C++库源代码直接包含在 Swift 项目中。

看看这篇文章是否有帮助:编译外部C++库以用于iOS项目。