
Hours of poring over documentation has failed to provide me with the answer to what I am sure is a simple question for most of you. Your help is appreciated. I want to compile a Haskell program that calls a foreign C function. I'm using GHC. When GHC links, it says it can't find my C function. That is not surprising, because I can't figure out how I'm supposed to tell GHC where to find my C function. This is what I've got: ------ FILE: ffi.hs {-# OPTIONS -fglasgow-exts #-} {-# OPTIONS -#include "myc.h" #-} module Main where foreign import ccall "supernumber" supernumber :: Int bongo :: Int bongo = supernumber + 1 main = do putStrLn (show bongo) ------ FILE: myc.c static int supernumber() { return(72); } ------ FILE: myc.h static int supernumber(); ------- END OF FILES When I do "ghc ffi.hs," it comes back: "ffi.o(.text+0xa8):fake: undefined reference to `supernumber' " I am guessing that I need to tell it where myc.c is. Perhaps I have to compile myc.c first using gcc? That seems inconvenient. Any hints? I am using Windows XP and GHC 6.4, if that matters. _________________________________________________________________ Is your PC infected? Get a FREE online computer virus scan from McAfee® Security. http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963