Swift Package Manager:关于普通系统模块的非法指令4

时间:2017-09-14 09:38:17

标签: swift swift-package-manager

我试图在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

为了让这个工作起作用,我已经将系统模块剥离到最简单的可能实现:

Package.swift

// swift-tools-version:3.1

import PackageDescription

let package = Package(
    name: "CLibSocket"
)

module.modulemap

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

shim.h

#include <stdio.h>

即使这是失败的。这里可能出现什么问题?

1 个答案:

答案 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