我试图在 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>
甚至这也失败了。这里可能出了什么问题?