[Fwd: Re: Foreign import]

Daan Leijen daanleijen at xs4all.nl
Wed Mar 5 16:17:28 EST 2003


> The error message is as follows
>
> --------------------------------------
> CallIncr.o: In function `sWM_entry':
> CallIncr.o:(.text+0xc5): undefined reference to `incr'
> collect2: ld returned 1 exit status
> --------------------------------------

I think that you forgot to link in your library, say libfoo.a
that defines the function "incr".

> ghc CallIncr.o -lfoo

If it is just a single file, say "foo.o", you say

> ghc CallIncr.o foo.o


-- Daan.


> where 'incr' is a toy function defined in 'mylib.h'.
> Obviously, in the foreign declaration I have changed
> 'myfun' by 'incr'.
> The compilation command is the typical
>
> ghc -ffi -c CallIncr.hs
>
> followed by
>
> ghc -ffi CallIncr.o
>
> which generate the previous error.
> Thanks again,
> gustavo
>
>
>
>
> Manuel M T Chakravarty said:
>> "Gustavo Villavicencio" <gustavov at ucse.edu.ar> wrote,
>>
>>> I'm a new ffi user and I have some problems with foreign import
>>> declaration. I'm don't have any problem to access C standard
>>> functions. However, I cannot access to my own functions in mylib.h by
>>> means of
>>>
>>> foreign import "mylib.h myfun" hmyfun :: ...
>>>
>>> May be I'm omitting some compilation step or parameter also, since
>>> I'm applying the same compilation process to call C standard
>>> functions.
>>>
>>> I'm working with ghc 5.04 on SuSe Linux 7.0.
>>
>> You should say what goes wrong.  Eg, paste the error
>> messages of the compiler and/or linker into your email.
>>
>> Manuel
>
>
>
> _______________________________________________
> FFI mailing list
> FFI at haskell.org
> http://www.haskell.org/mailman/listinfo/ffi
>
>







More information about the FFI mailing list