Xcode 找不到C++静态库
Xcode does not find C++ static library
所以我之前对此有一些问题,但我删除了我的旧问题并将其更新为这个问题。事情是这样的:
我想在我的 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 找到库,您至少有两个选择:
-
在"生成设置"下设置库搜索路径。 这可能会很混乱,因为您必须确保为正确的架构(例如模拟器或实际设备)构建库,并使用适当的路径。
-
创建新工作区,将库项目和应用项目添加到工作区。在应用目标的"生成阶段"中,在单击"将二进制文件与库链接"部分中的 + 号后弹出的对话框中选择静态库 (.a) 文件。 Xcode 将为正确的架构构建库,并将应用程序与正确的静态库链接起来。
现在,无论您选择上面的选项 1 还是 2,为正确的体系结构构建库都可能很棘手。 可以尝试以下几种方法:
- 在 Xcode 中创建外部构建系统项目并使用生成文件 随图书馆来源一起提供的。 (文件 -> 新建 -> 项目... ->跨平台。
- 在 Xcode 中创建 Cocoa Touch Static Library 项目。 (文件 ->新建 -> 项目... -> iOS。 您将需要添加库 项目的来源。 这可能是你最好的选择,如果 库的构建并不太复杂。
还可以选择将C++库源代码直接包含在 Swift 项目中。
看看这篇文章是否有帮助:编译外部C++库以用于iOS项目。
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- #为""定义宏;静态";针对不同的上下文
- cmake如何在fedora工作站中找到boost静态库包
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 将公共但非静态的成员函数与ALGLIB集成
- cmake在我的项目中所需的所有静态库都不成功
- C++从另一个类访问公共静态向量的正确方法是什么
- 基于boost的程序的静态链接——zlib问题
- 在静态库中嵌入类方法
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 如何在C++中获得"静态纯虚拟"功能?
- 私有类型的静态常量成员
- 使用gcc从静态链接的文件中查找可选符号
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 如何在C++中使用非静态成员函数作为回调函数
- 将静态库链接到不带-fPIC的共享库中
- 静态结构和一个定义规则
- 为什么虚函数不能是静态的和全局的?
- C++17中函数模板中的静态数组初始化(MSVC 2019)
- 停止cmake target_link_libraries将插件中静态库的两个对象文件链接到静态库本身