【问题标题】:Why is my OSX Command Line Tool Binary file so big?为什么我的 OSX 命令行工具二进制文件这么大?
【发布时间】:2019-02-27 15:50:40
【问题描述】:

我正在 Xcode 中制作命令行工具。我为此使用了项目模板。我没有更改默认的构建设置。

我的工具实际上有 2 个实现文件(除了 main.swift)。我没有打包在 Bundle 中的额外文件。

我有一个带有 Fixtures 的测试目标,但它们的目标成员资格不是我的命令行工具;只是测试目标。即便如此,它们也是小文本文件。

我没有链接除 Foundation 以外的任何框架

二进制可执行文件为 10.2Mb。我在想它应该是那个大小的 1/10 左右。

是否有我可以更改的构建设置?我不知道它为什么这么大。

【问题讨论】:

    标签: xcode macos command-line executable


    【解决方案1】:

    这是因为整个 Swift 库都嵌入在包中。 Swift 的进化速度非常快,嵌入库可以让它在同一个 OS 版本中使用不同的 Swift 版本。

    它将在下一个 Swift / macOS 版本中进行更改。

    【讨论】:

    • 是的,ObjC 运行时在 OS 框架中。目前我会在 ObjC 中编写所有 CLI。
    • 我没有意识到 Swift 运行时库以这种方式嵌入到二进制可执行文件中。对于应用程序,它们都作为 dylib 嵌入到应用程序包中。我猜它们是静态链接的?
    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    相关资源
    最近更新 更多