美文网首页
Swift 引用 C/C++ Framework 的 H 文件的

Swift 引用 C/C++ Framework 的 H 文件的

作者: l蓝色梦幻 | 来源:发表于2018-11-28 09:40 被阅读7次

    首先, 在 Swift 中是不能去调用 C++ 的代码的. 但是 Swift 可以调用 C 代码的, C 可以调用 C++. 我们可以通过 C 这个中间代码,让 Swift 可以去间接的调用 C++. 由于涉及 C++ 的编程部分, 这里不再赘述, 只描述 C 的调用问题.

    使用 Module.map 桥接

    1. 建立 module.map 文件. 如下显示. 注意: 模拟器与真机的 h 位置不同

      module CommonCrypto [system] {
          header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/CommonCrypto/CommonCrypto.h"
          header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/CommonCrypto/CommonRandom.h"
          //    link "CommonCrypto"
          export *
      }
      
    2. 在 Build Settings 中 Header Search Paths 与 System Framework Search Paths 中加入你的 module.map 路径.

    3. 引用 CommonCrypto , 这个时候就能正确使用了.

    Pod 文件中导出 Module.map 文件

    在 podspec 中添加如下代码:

        s.pod_target_xcconfig = {
          'SWIFT_INCLUDE_PATHS[sdk=iphoneos*]'           => '$(SRCROOT)/GearSwift/GearSwift/Cryption/Framework/iPhoneOS',
          'SWIFT_INCLUDE_PATHS[sdk=iphonesimulator*]'    => '$(SRCROOT)/GearSwift/GearSwift/Cryption/Framework/iPhoneSimulator',
        }
    

    相关文章

      网友评论

          本文标题:Swift 引用 C/C++ Framework 的 H 文件的

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