2013-08-15 18 views
7

Mam bibliotekę c, dla której chciałbym udostępnić interfejs FFI. Jest to dość łatwe, ale nie wiem, jak właściwie przygotować opakowanie. Byłoby miło, aby tylko mócCzy można spakować kod c przy pomocy Haskella za pomocą cabal?

cabal install librarybindings 

i mają kabała automatycznie zbudować go z gcc, wygenerować plik .o, a to, że wraz z dystrybucją. W tej chwili mogę pakiet skompilować dobrze, ale kiedy idziesz do zbudowania pliku wykonywalnego za pomocą wiązań, musisz jawnie przekazać ghc plik .o w linii poleceń. Fuj.

+4

Spójrz na [zlib] (http://hackage.haskell.org/package/zlib), robi dokładnie to (w systemie Windows). –

+4

Oczywiście, po prostu zobacz istniejącą bibliotekę z kodem C dla przykładu. Np .: filtr bloomfilter, szyfr-aes, szyfr-aes128, krypto-api i wiele innych. Myślę, że filtr bloom jest najłatwiejszy. –

+0

Dzięki. Te przykłady są dokładnie tym, czego potrzebowałem. –

Odpowiedz

5

Tak, możesz przesłać kod C z Haskell. Zobacz np.

Umownie bity C wprowadzone są w cbits/katalogu.