【问题标题】:Does Swift executable binary need the .swiftmodule, .swiftdoc and .build files to run?Swift 可执行二进制文件是否需要 .swiftmodule、.swiftdoc 和 .build 文件才能运行?
【发布时间】:2018-04-24 21:05:07
【问题描述】:

我正在使用 Vapor 为 Ubuntu 编写我的 Swift 应用程序。我的任务是拥有最小的 Docker 镜像用于生产。我已经大大缩小了我的图像,但出于好奇,我想知道,我的最终可执行文件是否需要同一目录中所有已编译的 .module.doc.build 文件?

【问题讨论】:

    标签: swift ubuntu vapor server-side-swift


    【解决方案1】:

    tl;dr: 没有。

    您列出的文件夹/文件是构建过程的副产品,可以安全丢弃。

    在分发方面,您的应用程序就像任何其他 Linux 可执行文件一样。您必须在目标系统上拥有所有可用的动态链接库。

    这些包括 Swift 工具链的运行时库以及您的应用程序(或其下的框架)用 (*) 链接的任何已编译 C 模块。

    您可以使用ldd 命令检查可执行文件的依赖关系。 其中一些作为包提供,其中一些需要手动复制到目标系统。


    (*) 对于 Vapor 2 应用程序,此类 C 模块为 libCHTTP.solibCSQLite.so,它们位于您的构建文件夹中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      • 2020-07-28
      • 2021-06-21
      • 1970-01-01
      • 2017-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多