我正在編寫一個程序Crystal,我打算編譯並移動到其他系統執行。理想情況下,它應該沒有依賴關係,因爲目標系統將是全新的Linux安裝。如何生成不依賴關係的Crystal可執行文件?
不幸的是,我無法繞過libc依賴項,所以我想大概必須在擁有最低版本libc的系統上編譯可執行文件,我希望以此爲目標。我認爲它應該是向前兼容的。
但是,我遇到了libssl的困難。 Debian的喘息的默認安裝中似乎並沒有配備的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有多少其他依賴關係?
我的可執行文件必須在新安裝的linux系統上運行。那麼,我怎樣才能生成一個沒有依賴的Crystal可執行文件呢?除了libc,我想。
我喜歡這個問題;有一段時間一切都是靜態聯繫的。蠕蟲會轉動。 – will