1

我试图在 Swift Package Manager 项目中包含一个系统模块,当我运行swift package update它时失败并出现无用的错误:

Illegal instruction: 4

详细输出表明,当项目试图链接我声明的系统模块时会发生这种情况:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc --driver-mode=swift -I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/pm -L /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/pm -lPackageDescription -target x86_64-apple-macosx10.10 /path/to/system/module/checkout/Package.swift -fileno 5

为了让它发挥作用,我将系统模块剥离为最简单的实现:

包.swift

// swift-tools-version:3.1

import PackageDescription

let package = Package(
    name: "CLibSocket"
)

模块.modulemap

module CLibSocket [system] {
  header "shim.h"
  export *
}

垫片.h

#include <stdio.h>

甚至这也失败了。这里可能出了什么问题?

4

1 回答 1

0

看起来编译器或 SwiftPM 在解析包的清单时崩溃了。如果您可以在 bugs.swift.org 上使用您的包的 zip 文件提交 JIRA,那就太好了。关于如何提交一个好的 SwiftPM 错误的说明在这里:https ://github.com/apple/swift-package-manager/blob/master/Documentation/Resources.md#reporting-a-good-swiftpm-bug

于 2017-09-15T03:52:47.993 回答