我有两台 ubuntu 服务器 22.04.4 机器。一份在本地开发,一份在服务器部署。
我在本地测试了发布版本,并将可执行文件从本地文件夹
.build/release/App
传输到服务器App
。在本地服务器中,App
不仅可以从任何文件夹运行.build/release/App
当我使用命令
./Server ServerApp --env production
时出现错误消息,
./服务器:加载共享库时出错:libswiftCore.so: 无法打开共享对象文件:没有这样的文件或目录
我真的认为
swift build --configuration release
将构建独立的二进制可执行文件。
在这个现代时代,我真的没想到最终的可执行文件需要运行时库,而不是使用标准操作系统 API。
但似乎我需要运行时库并且我搜索了很多无法找到设置生产服务器的说明。从字面上看,我对此很陌生。我该如何设置并解决该错误?
解决方案是在生产机器中也安装 Swift。所以最终的可执行文件并不是真正的跨平台本机应用程序。 对 Swift 语言推广者的夸大其辞。它需要像
JRE
一样的共享 swift 库。 为此,您必须在生产机器中安装 swift 开发环境。