linux - OS X 上的 Swift 为 Linux 编译?

标签 linux swift macos report tps

我对 Swift 在其他平台上的构建过程感到困惑。

Swift 是否允许我在 OS X 上构建 Linux 项目,或者我是否需要专门在 Linux 上使用 Swift 来构建我计划在那里使用的任何东西?

我查看了 documentation , 但这个话题还不是很清楚...

最佳答案

现在可以为 iOS、OS X 和 Linux 编译未导入任何框架的纯 Swift 应用程序。

你会生成不同的可执行文件,因为它是不同的平台,但代码源可以是相同的,只是需要针对各自的平台进行编译。

区别在于导入框架的时间。

如果您导入 UIKit 来制作 iOS 应用程序,显然您将无法在 Linux 上编译它,因为 Linux 没有那些 iOS UIKit 库,它们只能通过 Xcode 在 Mac 上使用。

如果您导入 Cocoa 来制作 OS X 应用程序,同样的逻辑适用,它只适用于 OS X。

同样,如果您导入特定的 Linux 库,例如 Glibc,则您可以制作仅在 Linux 上运行的 Swift 代码,这些库在 Mac 上无法运行。

等等等等

您需要记住的是,在为平台开发应用程序时,编程语言并不是那么重要,您所链接的框架和库才是决定性的。

不同的 Swift 版本带有不同的编译器(实际上是不同的工具链)所以要直接回答,不,你不能用普通的 OS X Swift 编译器为 Linux Swift 编译,你必须使用 Swift.org 的编译器。

关于linux - OS X 上的 Swift 为 Linux 编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35041483/

相关文章:

python - 在 Mac OS X 上使用 CGIHTTPServer 提供 Python 脚本

linux - 确定文件结构(描述文件描述符)是否为 'special file'(即 block /字符设备)

linux - 使 VS Code 编辑器 Ctrl+Tab 循环选项卡的顺序与屏幕上显示的顺序相同?

php - 允许 PHP 一切/给予 PHP 用户 root 权限

swift - 在 Swift 中使用 UISwitch 保存用户名和密码

ios - 如何正确处理 UIButton 属性和多行之间的空格

ios - Alamofire 不同请求的不同超时

cocoa - 如何逐步从NSTask中检索数据?

linux - Bash shell 'if' 语句比较不同命令的输出

objective-c - 在 ARC 下的 Cocoa 中,我可以获得引用另一个对象的对象列表(以编程方式或使用仪器)?