c++ - 在swift代码中加载静态库

标签 c++ ios swift xcode

我有一个用 c++ 编写并用 xcode 编译的静态库(.a 文件)。 在我的 C++ 代码中:

extern "C" void startA(const char * szCmdLne){
 //bla bla
}

extern "C" void stopA(){
  //bla bla
} 

现在我正在用 swift 2(在 xcode 中)编写一个 iOS SDK。我想将库加载到 SDK 中并调用这两个函数(startA 和 stopA)。

正确的做法是什么?我试过桥接,但它不起作用。

谢谢!

最佳答案

按照以下步骤:

1)在 Build Phase -> Link Binary with libraries 链接 xcode 中的静态库。

2)在swift工程中添加库头文件。

3)需要创建一个桥接头来调用库Api使用(File > New > File),然后选择“Source”并点击“Header File”。

4) 添加 无效停止A() startA(const char * szCmdLne) 在桥接头文件中。

现在,您应该能够从您的 swift 代码中调用这些 API。 检查此以获取更多详细信息: http://www.swiftprogrammer.info/swift_call_cpp.html#step2

关于c++ - 在swift代码中加载静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41912986/

相关文章:

c++ - 仅使用其他两个数字达到目标数字

ios - 在 swift 选项中访问 NS_OPTIONS 不可用

ios - 段错误 : 11 when running tests (XCode 8, Swift 2.3)

c++ - Boost asio::async_write 发送数千个小数据包

c++ - 使用 std::async() 和 std::move() 将数据异步传递给另一个线程

ios - 有没有办法从 RPBroadcastSampleHandler 中优雅地完成广播?

ios - 如何在使用 DispatchQueue 时停止从主线程快速执行正在运行的后台线程

ios - 使用 Swift 检查 ios 中蜂窝网络的互联网连接

ios - 静默通知未进入应用程序未运行状态?

c++ - 为 GCC 创建正确的 D3D11 库文件