Swift 2.2 undefined symbol 阻止构建

标签 swift swift2

我正在尝试使用新版本的开源 Swift 2.2 编译器构建项目,但遇到了一些问题。

像这样的最小示例:

.
├── Package.swift
└── Sources
    └── main.swift

包.swift

import PackageDescription

let package = Package(
    name: "foo",
    dependencies: []
)

主.swift

print("foo")

通过 swift build 运行会抛出以下内容:

Compiling Swift Module 'foo' (1 sources)
Linking Executable:  .build/debug/foo
Undefined symbols for architecture x86_64:
  "__TFSSCfT21_builtinStringLiteralBp8byteSizeBw7isASCIIBi1__SS", referenced from:
      _main in main.swift.o
  "__TFs5printFTGSaP__9separatorSS10terminatorSS_T_", referenced from:
      _main in main.swift.o
  "__TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A0_", referenced from:
      _main in main.swift.o
  "__TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A1_", referenced from:
      _main in main.swift.o
  "__TMSS", referenced from:
      _main in main.swift.o
  "__TTSg5P____TFs27_allocateUninitializedArrayurFBwTGSax_Bp_", referenced from:
      _main in main.swift.o
  "__TZvOs7Process11_unsafeArgvGSpGSpVs4Int8__", referenced from:
      _main in main.swift.o
  "__TZvOs7Process5_argcVs5Int32", referenced from:
      _main in main.swift.o
  "_globalinit_33_1BDF70FFC18749BAB495A73B459ED2F0_func5", referenced from:
      _main in main.swift.o
  "_globalinit_33_1BDF70FFC18749BAB495A73B459ED2F0_token5", referenced from:
      _main in main.swift.o
ld: symbol(s) not found for architecture x86_64
<unknown>:0: error: build had 1 command failures
swift-build: exit(1): ["/Library/Developer/Toolchains/swift-2.2-SNAPSHOT-2015-12-01-a.xctoolchain/usr/bin/swift-build-tool", "-f", "/Users/kilian/Desktop/foo/.build/debug/foo.o/llbuild.yaml"]

Swift 是 Apple Swift 版本 2.2-dev(LLVM 46be9ff861、Clang 4deb154edc、Swift 778f82939c)目标:x86_64-apple-macosx10.9,如 swift.org 上提供的。

我能在网上找到的关于此的唯一故障排除信息对应于 Xcode 和链接其他外部库。在这里的任何帮助将不胜感激。

最佳答案

我还没有在我的 Mac 上尝试过新的开源 Swift,而是专注于在 Linux 上使用它。但是,当 Clang 不可用时,Linux 上可能会发生类似的情况。在那种情况下,swift REPL 和 swift 作为解释器工作正常,但 swiftc 和 swift build 失败。出于好奇,您可能想尝试一下

swiftc main.swift

在您的 Sources 目录中。 Google for xcode command line tools mac os x 或这些搜索词的组合。例如,以下内容可能会有所帮助:

https://developer.apple.com/library/ios/technotes/tn2339/_index.html

要查看您的命令工具是否可用,请从命令行尝试 clanggcc。如果您收到没有输入文件的消息,则说明工具已安装(可能不正确)。如果您遇到其他错误,则表明工具不存在,这很可能是导致您出现问题的原因。

希望这对您有所帮助。

关于Swift 2.2 undefined symbol 阻止构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34162636/

相关文章:

swift - 在 Cocoa Swift macOS 应用程序中,有没有办法子类化 AVPlayerView 以获得圆角和阴影?

ios - 如何显示时间 08 :00:00 to 8 am using swift

macos - 左键与右键单击状态栏项目 Mac Swift 2

ios - 删除失败 "Info.plist"无法删除

json - Swift:获取 JSON 数据并在本地更新

swift - 如何获取UIColor的所有Color方法?

arrays - 是否可以在 Swift 中将 UITableViewCell 的值 append 到字符串数组?

ios - CABasicAnimation CALayer 路径动画方向

swift - 如何在 Swift 2.0 中静音 "Default will never be executed"

swift - SWreveal - 如何返回到我开始使用的 View Controller