我试图在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-tools-version:3.1
import PackageDescription
let package = Package(
name: "CLibSocket"
)
module CLibSocket [system] {
header "shim.h"
export *
}
#include <stdio.h>
即使这是失败的。这里可能出现什么问题?
答案 0 :(得分:0)
看起来好像编译器或SwiftPM在解析包的清单时崩溃了。如果您可以使用包的拉链在bugs.swift.org上提交JIRA,那就太棒了。有关如何提交好SwiftPM错误的说明,请访问:https://github.com/apple/swift-package-manager/blob/master/Documentation/Resources.md#reporting-a-good-swiftpm-bug