swift和swiftc有什么区别?

时间:2019-09-03 18:35:48

标签: swift macos

swift和swiftc有什么区别?

我已经阅读了一些资源,其中说swiftc是swift的符号链接,但是在macOS Mojave 10.14.6上不是这种情况:

-rwxr-xr-x  1 root  wheel  18288 Jul 29 23:49 /usr/bin/swiftc

swift和swiftc都包含OVERVIEW: Swift compiler作为其--help菜单的一部分,但是尽管它们的选项相似,但是它们是不同的。

1 个答案:

答案 0 :(得分:4)

swift是Swift的交互式环境(REPL)。

swiftc是Swift编译器。

/usr/bin中的文件只是重定向到当前所选版本(基于xcode-select)。如果查看文件大小,您会注意到它们只有18kB。它们不是真正的可执行文件。

可以使用xcrun找到实际版本:

$ xcrun -f swift
/Applications/Xcode-beta7.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift

如果您在该目录中查找,则会看到swiftc是指向swift(90MB可执行文件)的符号链接。可执行文件只是检查其运行名称,并相应地调整其行为。