2014-07-25 38 views
8

我正在使用C和Haskell的項目。目前,我正在使用CMake構建一個C共享庫和cabal來構建一個Haskell可執行文件。有沒有更統一的方法來做到這一點?我可以從CMake生成的Makefile中調用cabal嗎?還是有一種方法可以直接從Cabal構建C庫?謝謝。爲使用C和Haskell的項目構建系統

+0

你真的需要一個C庫嗎?您可以通過Cabal直接指定C源文件,並將它們編譯並鏈接到您的項目中。 –

+1

我正在編寫一種將源代碼編譯爲C語言的編程語言。解析器和C代碼生成器是用Haskell編寫的。 C中間代碼通過管道連接到與共享庫鏈接的系統C編譯器。所以庫和可執行文件是獨立的實體;我不需要鏈接haskell的東西和庫。 – spacepotato

+0

你可以在你的cabal文件中指定Custom構建模式,並且只需在cabal構建過程中適當的時候運行cmake(可能這是在構建haskell包之前或之後)。請參閱['UserHooks']的文檔(http://hackage.haskell.org/package/Cabal-1.20.0.1/docs/Distribution-Simple.html)。 – user2407038

回答

1

CMake也可以做你想做的。但它確實重複了cabal的許多功能。所以你可以從你選擇使用的任何構建工具中調用cabal(對於cmake,使用自定義命令,用於makefile,它是不言自明的),直接構建二進制文件(參見cabal build -v)。

請參閱Is it possible to use cmake for Haskell projects?

相關問題