我是新來堆棧,並不是所有精通cabal。堆棧構建創建輸出可執行文件的兩個副本
我已將cabal項目轉換爲堆棧。它似乎正在建設好。我喜歡它,到目前爲止。
但我觀察到一些我不明白的東西。當我執行堆棧構建命令時,我看到兩個輸出可執行文件被創建。兩者都位於.stack-work路徑中,其中一個在dist下,另一個在安裝下。他們有完全不同的尺寸。 dist路徑中的文件幾乎是安裝路徑中的文件大小的兩倍。
我能想到的唯一解釋是,dist路徑中的可執行文件包含(在其內部嵌入)在不同計算機上運行此代碼所需的所有程序包依賴性的可能性(它是完整的準備分發到不同的機器上),而安裝路徑中的文件希望它在構建它的同一臺機器上運行,並且這些相關庫安裝在主應用程序代碼的外部。
這有道理嗎?
任何替代解釋?
戴維·史密斯
這是正確的。通過調用'Cabal'庫的'copy'命令將'install'中的副本放置在那裏,當庫存在並且將被註冊(使用'register'命令)時,這是必需的。 –
好吧,我現在已經閱讀了標籤爲「構建和安裝軟件包」的cabal用戶指南部分,但我仍然不完全清楚。我的目標是在我的Windows開發機器上運行的虛擬Ubuntu機器上構建獨立的可執行文件,然後在另一臺Ubuntu服務器上覆制並運行映像。 那麼我應該將哪些輸出可執行文件複製到目標環境? 感謝您的見解。 – dacDave
@dacDave - 雙方將工作(我嘗試過),但一個在安裝/ ....是更「完整」的人,所以複製。 – jamshidh