Swift 可执行二进制文件是否需要 .swiftmodule、.swiftdoc 和 .build 文件才能运行?
·
问题:Swift 可执行二进制文件是否需要 .swiftmodule、.swiftdoc 和 .build 文件才能运行?
我正在使用 Vapor 为 Ubuntu 编写我的 Swift 应用程序。我的任务是拥有最小的 Docker 镜像用于生产。我已经大大缩小了我的图像,但出于好奇,我想知道,我的最终可执行文件是否需要同一目录中所有已编译的.module
、.doc
和.build
文件?
解答
** tl;博士:** 没有。
您列出的文件夹/文件是构建过程的副产品,可以安全地丢弃。
在分发方面,您的应用程序就像任何其他 Linux 可执行文件一样。您必须在目标系统上拥有所有可用的动态链接库。
这些包括 Swift 工具链的运行时库以及您的应用程序(或它下面的框架)与 (*) 链接的任何已编译 C 模块。
您可以使用ldd
命令检查可执行文件的依赖关系。其中一些作为包提供,其中一些需要手动复制到目标系统。
(*) 对于 Vapor 2 应用程序,此类 C 模块是libCHTTP.so
和libCSQLite.so
,它们位于您的构建文件夹中。
更多推荐
所有评论(0)