美文网首页
module.modulemap

module.modulemap

作者: 搞好关系 | 来源:发表于2019-04-01 11:36 被阅读0次

    swift 有UNSafePoint的概念,但是不能够与C/C++直接交互,但是对于C/C++模块操作就需要进行一些改进那就是今天的主角moulemap啦。
    要想使用你自己的C/C++按照 import的方式在swift使用那么你需要经历以下几个简单配置
    1 当然是将对应的C/C++源码文件导入到swift项目中
    2 配置modulemap啦
    3 import 使用啦

    至于导入c/C++代码自不必说例如


    image.png

    内容很简单(定义一个结构体而已)

    typedef struct User{
        char *name;
        unsigned char age;
    } User;
    

    看完了基本的C/C++文件定义完成,我们进行配置
    1 新建一个空白文件
    2 写入配置


    image.png

    内容如下

    module Sk [system][extern_c]{
        header "./lib/include/sk-header.h"
        export *
    }
    

    3 Xcode build settings 搜搜import paths添加配置$(SRCROOT)/ModuleMap

    image.png

    到此为止您就可以使用 import Sk来使用您的C/C++

      var skName = "SkeyBoy".data(using: .utf8)!
            let age = 30
            
         let user =   User.init(name: skName.withUnsafeMutableBytes { $0 }, age: UInt8(age))
            print(user)
    

    我们看看系统给我们做了什么


    image.png

    惊喜吧,通过这个我们可以在swift中直接导入C/C++的库啦

    相关文章

      网友评论

          本文标题:module.modulemap

          本文链接:https://www.haomeiwen.com/subject/rxgmbqtx.html