Personal tools

Talk:FFI complete examples

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
(New page: ncurses is proving too difficult to setup, so I'm working on a new library called charm. The C code works by itself, but I can't compile a Haskell wrapper for it. While the tutorials at Ha...)
 
(wiki syntax)
Line 7: Line 7:
 
[https://github.com/mcandre/hscharm]
 
[https://github.com/mcandre/hscharm]
   
{{{
+
$ make
$ make
+
cp /usr/include/charm.c .
cp /usr/include/charm.c .
+
ghc --make -fforce-recomp -o hellocharm hellocharm.hs charm.hs charm.c -I/usr/include -dylib-install-name /usr/lib/libcharm.dynlib
ghc --make -fforce-recomp -o hellocharm hellocharm.hs charm.hs charm.c -I/usr/include -dylib-install-name /usr/lib/libcharm.dynlib
+
[1 of 2] Compiling Charm ( charm.hs, charm.o )
[1 of 2] Compiling Charm ( charm.hs, charm.o )
+
[2 of 2] Compiling Main ( hellocharm.hs, hellocharm.o )
[2 of 2] Compiling Main ( hellocharm.hs, hellocharm.o )
+
Linking hellocharm ...
Linking hellocharm ...
+
ld: duplicate symbol _Charm_getWidth_info in charm.o and charm.o
ld: duplicate symbol _Charm_getWidth_info in charm.o and charm.o
+
collect2: ld returned 1 exit status
collect2: ld returned 1 exit status
+
make: *** [hellocharm] Error 1
make: *** [hellocharm] Error 1
 
}}}
 

Revision as of 06:50, 14 July 2011

ncurses is proving too difficult to setup, so I'm working on a new library called charm. The C code works by itself, but I can't compile a Haskell wrapper for it. While the tutorials at HaskellWiki are helpful, they're outdated. Argh! The docs say that -#include pragmas no longer work, but fail to explain how to load code without them. Suffice to say I have no recourse but trial and error.

charm [1]

hscharm [2]

$ make
cp /usr/include/charm.c .
ghc --make -fforce-recomp -o hellocharm hellocharm.hs charm.hs charm.c -I/usr/include -dylib-install-name /usr/lib/libcharm.dynlib
[1 of 2] Compiling Charm            ( charm.hs, charm.o )
[2 of 2] Compiling Main             ( hellocharm.hs, hellocharm.o )
Linking hellocharm ...
ld: duplicate symbol _Charm_getWidth_info in charm.o and charm.o
collect2: ld returned 1 exit status
make: *** [hellocharm] Error 1