2013-04-22 107 views
8

是否有任何方法可以生成獨立的haskell可執行文件,以在不同的Linux機器上運行,假設架構相似?是否有可能生產獨立的haskell可執行文件

對不起,我應該更清楚。其他機器可能沒有安裝ghc - 有點像Python的pyinstaller就是我一直在尋找的東西?

+0

這是http://www.yesodweb.com/blog/2012/03/shelly-for-shell-scripts你在找什麼? – xhudik 2013-04-22 14:53:28

回答

11

編譯Haskell項目時,您可以使用標誌-static -optl-pthread -optl-static來避免動態鏈接依賴性。這應該可以幫助您在兩臺不具有完全相同庫版本的Linux機器上運行編譯後的可執行文件。

+0

我會給這個去 - 謝謝 – opensourcegeek 2013-04-22 15:22:22

+0

我從來沒有與ghc和靜態鏈接的運氣,所以我很好奇,這對你(和上)的工作效果如何。例如,在Fedora上,你顯然需要靜態庫('yum install glibc-static'),但RTS調用dlopen仍然存在問題。 – 2013-04-22 19:57:56

3

是的,這是可能的。就像使用gcc生成的二進制文件一樣,假設動態庫和平臺匹配,您可以在系統之間複製它們。

實際上,這比GCC二進制文件稍高一點,因爲GHC默認會動態鏈接更多的庫(例如:除非使用integer-simple構建GHC,否則:libgmp)。

相關問題