我可以将我的c++类编译成静态库(a)以便在我的iPhone项目中使用吗?
Can I compile my c++ class into static library (.a) in order to use in my iPhone project?
由于我的图像处理类是用c++写的,我想在我的iPhone项目中使用它,所以,是否有可能将这个c++类编译成静态库(a)并在我的iPhone项目中使用它?我还想知道在Mac OS-X上编译c++源文件为静态库(a)的命令,以及在Xcode中如何调用编译成静态库(a)的c++函数。
为了让你的工作更轻松,你可以直接将c++源文件包含到Xcode项目中。事实上,如果你用.mm
扩展名来命名你的Objective-C文件,它们将能够直接使用c++源代码(这实际上被称为Objective c++)。
另一方面,你可以用你的处理类创建一个静态库并将其链接到你的目标,但是,你仍然需要使用Objective c++(即。mm扩展名),因为你无论如何都需要包含c++头文件并使用编译器ABI(二进制接口)链接到c++二进制文件。
从c++源代码创建静态库与从C或Objective-C代码创建静态库没有什么不同(因为创建静态库只是编译+归档)。
请参阅S.O.的这篇文章,了解创建通用静态库的更多细节。
可以。
唯一需要注意的是,在上面的链接中,作者在。m文件和头文件中创建了一个Objective-C类,但在你的情况下,你需要导入你的。cpps和头文件。
相关文章:
- cmake在我的项目中所需的所有静态库都不成功
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 编译器现在遵循C++14标准,我的项目不再编译神秘的SFML错误
- 如何在我的项目中从 CMAKE 中的同一项目获取多个库
- 为什么我的项目没有保存名称中所做的修改
- 如何自动获取我的项目的路径并删除一些文件
- Qt - 为什么Visual Studio 2019在qml资源中添加10Mb文件后无法再编译我的项目?
- 我必须构建我的项目 2 次,第一次失败,因为它无法打开库
- 我怎样才能简单地将opencv 包含在我的项目中与CMake
- 如何在Cmake中正确查找头路径,以便在我的项目中构建Box2D
- 阻止我的项目调用__CxxFrameHandler3(CRT函数)
- 我的项目中某些仅标头文件不能包含使用 CMake 和 Vscode 的"SFML/Graphics.hpp"
- 如何从支持linux/mac操作系统的第三方代码为我的c#项目创建dll
- 如何在bazel中同时处理外部依赖项和我的项目
- :-1: 错误: LNK1104: 无法打开文件"我的项目.obj"
- 如何使用 Xcode 8.2.1 在我的项目中添加 cpprestsdk 库
- SQLite - 从源代码构建库或将源代码直接包含在我的项目中
- 为什么当我的项目是使用 Android NDK r16 构建时,我会收到来自 Android NDK r11 的错误消息
- 我的C++项目找不到.exe
- 如何在我的项目包中使用C 库GTSAM