问题:Swift 可执行二进制文件是否需要 .swiftmodule、.swiftdoc 和 .build 文件才能运行?

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

解答

** tl;博士:** 没有。

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

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

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

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


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

Logo

Ubuntu 社区为您提供最前沿的新闻资讯和知识内容

更多推荐