我正在使用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系统上运行。那么,除了libc之外,我怎样才能生成一个没有任何依赖关系的Crystal可执行文件呢?