【发布时间】:2015-08-12 20:53:04
【问题描述】:
优胜美地 10.10.3:
import Foundation
println("Hello, World")
swiftc -o out in.swift,结果:
错误: 无法在我的桌面上加载“CoreGraphics”的底层模块,但可以在我的笔记本电脑上编译和运行。两台机器上都没有设置环境变量 SDKROOT。我不知道为什么这段代码会在我的笔记本电脑上编译,而不是在我的桌面上。显然已经设置了一些东西,允许 swiftc 在我的笔记本电脑上找到模块“CoreGraphics”,而不是在我的桌面上。
xcrun -sdk macosx swiftc -o out in.swift 将允许代码在桌面上编译。我被要求解释为什么我能够运行前者很重要,以及为什么我不能只运行后者而忘记它;除了我自己的好奇心之外,我没有其他答案,想了解事物是如何以及为什么工作的,这样我就可以掌握我的计算机,反之亦然。除此之外,它的输入要短得多。
【问题讨论】:
-
编辑它以显示无法编译的最小 swift 文件并显示错误。此外,如果您能解释为什么不使用
xcrun很重要,我们也许可以解决您在使用它来使命令行工具工作时遇到的任何犹豫。投票将其搁置,直到可以对其进行编辑/清理。 -
swiftc -version和xcode-select --print-path在两台机器上返回相同的结果吗? -
是的,它们完全相同: swiftc -version 导致 Apple Swift 版本 1.2 (swiftlang-602.0.53.1 clang-602.0.53) 目标:x86_64-apple-darwin14.3.0 而代码-选择 --print-path 导致 /Applications/Xcode.app/Contents/Developer/