【问题标题】:Can't include C-files in Swift-package with Xcode 11 package manager不能在带有 Xcode 11 包管理器的 Swift 包中包含 C 文件
【发布时间】:2019-09-27 21:01:11
【问题描述】:

我使用 Xcode 11.0 创建了一个 Swift 5.1 应用程序,其中包含 c 文件和 h 文件。 Xcode 自动生成了一个桥接头。 我输入了必要的#imports。 该项目按预期编译和运行。 现在我想创建一个 Swift 包,其中包含 c 文件和头文件、桥接头文件和一个 Swift 文件,它是 c 函数的包装器。 我是通过以下方式做到的。

  1. 我打开了文件->新建->Swift 包
  2. 我填写了包的名称字段和添加到:和组:字段
  3. 现在 Package.swift 出现在项目中。
  4. 我将 Swift 文件从项目文件夹移到 Package.swift/Sources/packageName 文件夹中。
  5. 出于测试原因,我更改为目标/常规窗口并按下框架、库和嵌入内容的 + 按钮。
  6. 正如预期的那样,在出现的框架列表中,我可以找到我的包的名称。
  7. 我取消了窗口并返回将单个 c 文件移动到包文件夹中。
  8. 然后我回到目标/常规窗口并再次按下 + 按钮,现在令人惊讶的是列表不包含我的包名称

在我看来,将 c 文件包含到 Swift 包中需要一些额外的步骤。 我在文档中搜索,但找不到提示。

【问题讨论】:

    标签: c swift xcode package bridging-header


    【解决方案1】:

    基本上你现在不能在同一个包中混合 C 和 Swift 源代码。

    但是,您可以拥有一个包含所有 C 文件的目标,然后拥有一个包含 Swift 文件但取决于您的 C 文件目标的不同目标。

    从您的问题来看,您似乎缺少很多中间步骤。如果我是你,我会尝试获取一个仅使用 C 文件的简单示例,然后继续添加依赖于此的 Swift 目标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-18
      • 1970-01-01
      • 2015-09-03
      • 2017-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多