3
我很不熟悉任何語言的靜態鏈接,但我試圖靜態鏈接一個Haskell程序在其他mac上使用。我已經成功地靜態地在Linux上的鏈接並確認其在其他Linux系統通過使用這些選項可以工作:-O2 -static -optl-static -optl-pthread
是否可以在OS X上靜態鏈接一個Haskell應用程序?
當我嘗試使用在OS X上的選項,我得到以下錯誤:
ld: library not found for -lcrt0.o
collect2: ld returned 1 exit status
任何想法是什麼?我在做什麼完全堅果?
有什麼特定的東西讓你認爲你需要靜態鏈接,只是爲了在不同的計算機上運行你的可執行文件?通常,OS X可執行文件動態鏈接到系統提供的庫;靜態鏈接遠不如Linux。你可以在你的可執行文件上運行'otool -Lv'來查看它動態加載的庫。如果它們都在'/ usr/lib'或'/ System/Frameworks'中,並且它們不是你安裝的東西,那麼你可能已經OK了。 – 2013-02-24 07:25:35
我不知道。看起來它所鏈接的所有庫都位於/ usr/lib中。優秀。我想我應該保持這個狀態,因爲它可能仍然是一個有效的問題,但我會更新這個問題。 – Rayne 2013-02-24 07:32:48
我應該說「它從未做過」,而不是「不那麼常見」。 [更多背景在這個答案](http://stackoverflow.com/questions/844819/how-to-static-link-on-os-x)和[Apple QA 1118](https://developer.apple。 COM /庫/ MAC /#QA/qa2001/qa1118.html)。 – 2013-02-24 07:45:55