当前位置: 首页 > 知识库问答 >
问题:

如何使用Swift软件包管理器“Swift build”命令构建优化版本的Swift软件包

卢恩
2023-03-14

我想将以新的swift包管理器格式编写的swift代码编译成高度优化的二进制代码。这在当前使用swiftc-O somefile时是可能的。swift但是由于swift包是使用swift build命令生成的,我无法传递-O选项,因为它不接受它。那么,有没有一种方法可以指定在编译过程中优化代码?


共有1个答案

颛孙铭
2023-03-14

您可以使用以下方式构建发布配置:swift build--配置发布

您还可以通过以下方式查看工具使用情况:

$ swift build --help
OVERVIEW: Build sources into binary products

USAGE: swift build [mode] [options]

MODES:
  -c, --configuration <value>   Build with configuration (debug|release) [default: debug]
  --clean [<mode>]              Delete artifacts (build|dist) [default: build]

OPTIONS:
      -C, --chdir <path>       Change working directory before any other operation
  --build-path <path>      Specify build/cache directory [default: ./.build]
  --color <mode>           Specify color mode (auto|always|never) [default: auto]
  -v, --verbose            Increase verbosity of informational output
  -Xcc <flag>              Pass flag through to all C compiler invocations
  -Xlinker <flag>          Pass flag through to all linker invocations
  -Xswiftc <flag>          Pass flag through to all Swift compiler invocations

NOTE: Use `swift package` to perform other functions on packages

它列出了这个选项。

有关更多信息,请参阅包管理器参考。

 类似资料:
  • 问题内容: 我得到我的手一起去脏,虽然我理解和欣赏的原理 简单 说离开是在建,我想把握原理背后放弃一个 内置的封装版本的方法 在他们的依赖,获取工具和该声明。 如果我正确理解,然后从中获取软件包,他们将无法引用分支或标签。虽然有诸如gopkg.in之类的工具可以绕过此限制,但官方工具链: 强制开发人员为产品的主要(破坏性)版本创建单独的存储库。 如果在较新的版本中发现错误,则不允许消费者在次要版本

  • 安装 要在集群主机上安装 Ceph 软件包,在管理主机上打开命令行并执行下列命令: ceph-deploy install {hostname [hostname] ...} 没提供额外选项的话 ceph-deploy 默认会把最新稳定版安装到集群主机,要指定某个软件包可以用下列参数: --release <code-name> --testing --dev <branch-or-tag> 例如

  • 问题内容: 一个最近的问题在这里SO让我思考。 在我尝试过的大多数Linux发行版中,某些Perl模块可以通过软件包管理器获得。其他人当然不会。在相当长的一段时间里,每当我需要安装一些CPAN模块来查找某个软件包是否可用并在安装该软件包时都将使用我的软件包管理器。 明显的好处是,只要有新版本的软件包可用,您就可以更新模块。 但是,当模块无法以预打包的形式提供并且该模块存在依赖项时,您会遇到麻烦。每

  • 问题内容: 我正在尝试使用Node.js编译python脚本。python脚本包括我已安装​​的一些模块。我的python软件包管理器是Anaconda,因此我尝试在以下位置提供该选项: 但是,我得到一个错误: 我怀疑这是因为Anaconda Prompt只是一些奇怪的快捷方式,它为cmd.exe设置了一些变量(快捷方式指向的位置)。 所以我的问题是: 我可以直接使用Node.js调用anacon

  • 问题内容: 由于与另一个软件包的名称冲突,Ubuntu上的NodeJS解释器名称()已重命名为。这是自述文件。Debian说: Node.js解释器命令的上游名称是“ node”。在Debian中,解释器命令已更改为“ nodejs”。 这样做是为了防止名称空间冲突:其他命令在上游使用相同的名称,例如“ node”包中的ax25-node。 必须将调用Node.js作为shell命令的脚本更改为使

  • 软件包的版本号是个奇怪的东西。它们看起来像十进制的数字,但它们不是。 例如,一个版本号通常的形式为 2.6.4。如果你需要比较两个版本号, 不能做简单的字符串比较,因为 2.6.4 会比 2.6.12 大;也不能进行数字比较, 因为它们不是有效地数字。 Puppet 的 versioncmp 函数会帮我们解决这个问题。 若你给它传递两个版本号,它会比较它们,并返回一个值,指出谁是更大的: ve