swift 调用 C语言库

本文介绍了两种在Swift中调用C语言库的方法:一是通过创建桥接文件,设置Objective-C桥接头;二是利用Swift的module,创建module.modulemap文件,并配置Import Paths。以系统库CommonCrypto为例,详细阐述了具体步骤和注意事项,包括正确指定header路径,避免使用link属性等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     目前了解到两种调用C语法方法方式:这里以系统中自带的“ /usr/include/CommonCrypto/CommonCrypto.h”为例

一: 使用桥接文件。
     创建一个桥接文件xxx.h,然后在Build setting 中 “Objective-C Bridging Header” 中添加刚刚创建的xxx.h文件,例如:
然后在将需要使用的头文件名写入xxx.h文件就可以在swift中调用,此方法不近适用于C语言,同样适用于OC。例如:

二:使用swift的module。
    1. 首先在工程中创建一个Group,在Group中创建一个Empty文件,命名为module.modulemap或者module.map。
    2.在其中填写如下内容(注释内容不需要):
module  CommonCrypto [system] {
     header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/CommonCrypto/CommonCrypto.h"
    
///usr/include/CommonCrypto/CommonCrypto.h" //识别不了这个路径
    
//link "CommonCrypto" //不要添加这句
    
export *
}

注意
网上有一部分例子中header使用的是"/usr/include/CommonCrypto/CommonCrypto.h"
但是这个路径不全,找不到相关API的。
也有的例子添加了link 这个属性,但是这个属性会造成如下错误:

    3. 添加上述内容完成之后,需要在Build setting 中的Import Paths 选项中填写:module map的路径,如下:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值