linux - Linux 上的 Swift : how to specify compiler optimizations

标签 linux swift macos compilation

stackoverflow 上的几个线程(例如 this one)讨论了不同的优化级别(OnoneOOunchecked...)编译 Swift 应用程序。

但是,这些帖子与 OSX 上的开发有关。似乎可以通过 Xcode 或 xcrun (xcrun swift -O3) 直接设置这些优化。

我想知道在 Linux(Ubuntu 15.10)上直接使用 Swift 编译器时如何切换不同的优化级别。目前,我只是通过调用 swift build 构建应用程序,如文档中所示,但我发现没有办法不改变优化级别。

最佳答案

可以向 Swift 编译器提供 -O-Onone-Ounchecked 优化标志,swiftc 。但是,目前似乎没有办法为 swift build 指定额外的标志。例如,请参阅以下链接,即使它没有直接关系: https://bugs.swift.org/browse/SR-397 .同一份错误报告表明该团队正在积极努力添加此缺失的功能。

我发现解决该问题的一种方法是运行 swift build -v,找到引用 -Onone 的第一个命令,复制它和所有命令跟随它到 shell 脚本,编辑脚本以使用所需的优化级别而不是 -Onone,然后运行脚本。这应该使用所需的优化级别重新编译 Swift 源代码并重建可执行文件。

在我的测试中,我发现如果使用 -O-Ounchecked 而不是 -Onone.

关于linux - Linux 上的 Swift : how to specify compiler optimizations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34569159/

相关文章:

ios - 呈现 UIAlertViewController 抛出 "View not in window heirarchy"- Swift

c++ - 如何编译多个子目录下的所有cpp文件?

macos - osx上的Gradle Docker插件中断管道

linux -/bin/sh :/usr/sbin/sshd-keygen: No such file or directory

c++ - linux 链接到 .so ,但仍然得到 undefined reference

linux - 使用 Bash 查找和复制文件

python - 配置 django ec2 实例以使用 virtualenv

ios - : and ()之间的swift iOS区别

swift - 为什么 Swift 在这里给我一个 EXC_BAD_INSTRUCTION?

swift - macOS 中的 NSWindow makeKey() 不工作