【发布时间】:2016-05-12 00:30:07
【问题描述】:
我正在Crystal 中编写一个程序,我打算编译并移动到其他系统执行。理想情况下,它应该没有依赖关系,因为目标系统将是全新安装的 linux。
遗憾的是,我无法绕过 libc 依赖项,因此我可能不得不在拥有我希望定位的最低版本 libc 的系统上编译可执行文件。我认为它应该是向前兼容的。
但是,我在使用 libssl 时遇到了困难。 Debian Wheezy 的默认安装似乎没有附带 libssl,因此在运行可执行文件时出现此错误:
error while loading shared libraries: libssl.so.1.0.0:
cannot open shared object file: No such file or directory
我假设存在这种依赖关系,因为我在源代码中require "http/client"。但是,我不进行与 ssl 相关的调用,因为我只使用它来连接到不安全的网站。
我显然也依赖于libevent-2.0.so.5。大概所有 Crystal 程序都可以。谁知道 Crystal 还有多少其他依赖项?
我的可执行文件必须在新安装的 linux 系统上运行。那么,如何生成没有依赖关系的 Crystal 可执行文件?我想除了 libc。
【问题讨论】:
-
我喜欢这个问题;有一次,一切都是静态链接的。蠕虫转动。
标签: dependencies static-linking crystal-lang