Предположим, что я написал код Haskell и скомпилировал его в 64-битной установке Ubuntu, статически связав все пакеты Haskell и библиотеки c. Будет ли результат бинарным, совместимым с любым другим 64-битным дистрибутивом Linux?Совместимость двоичных файлов Haskell
11
A
ответ
1
Да, из-за статической связи - это все в двоичном формате. И да, они могут стать довольно большими, например, выход Yesod может легко до 70 МБ. Тем не менее, он имеет HTTP-сервер в пределах 70 МБ.
Таким образом, статическое связывание может, таким образом, способствовать переносимости, но имеет свои недостатки с точки зрения размера исполняемого файла.
Должно быть, см., Например, http://stackoverflow.com/a/10549484/477476 и http://stackoverflow.com/a/5953787/477476 – Cactus
Вау, двоичный файл, полученный из 'ghc -02 test.hs -optl-static -optl-pthread 'составляет около 2,5 ГБ (test.hs содержит' main = print "yes" '). –
фактически 2.5MB. Кто-то не может читать вывод 'ls' haha –