Version française
Home     About     Download     Resources     Contact us    
Browse thread
Shared libraries with ocamlopt callable from C (without main())?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Ben Jakb <ben.jakb@g...>
Subject: Re: [Caml-list] Shared libraries with ocamlopt callable from C (without main())?
> I introduced a bug: the string in the C file is "add_five", while the
> registered one in the ml file is "add five".

Touché. I suppose I looked to long to this code
And yes it works now, thanks ...

2009/1/10 Matthieu Dubuget <matthieu.dubuget@gmail.com>:
> Ben Jakb a écrit :
>> matthieu,
>> thanks for the interesting answer.
>> Unfortunately I can't build 'mycamlbuild.ml', and it is a bit too
>> advanced for me to understand.
>
> If you have a > 3.10 version of ocaml, you don't need to compile
> yourself myocamlbuild.ml.
>
> This is done automatically by ocamlbuild.
>
>>
>> Therefore I'll first go with your standard build commands. So - after
>> modifing the sources according to your suggestions I run:
>>
>> BUILD
>>     ocamlopt -c add5.ml
>>     ocamlopt -c add5wrapperlib.c
>>     ocamlopt -o add5lib.native.so -ccopt -shared add5.cmx add5wrapperlib.o
>>     ocamlc.opt -ccopt -Iinclude -c main.c
>>     gcc -o maintest.native main.o -l:add5lib.native.so -L. -Wl,-rpath=.
>>
>> EXECUTION
>>     cp add5lib.native.so  lib/
>>     ./maintest.native
>>
>> ERROR
>> "maintest.native: add5wrapperlib.c:24: add5wrapper: Assertion `cbk' failed.
>> Aborted"
>>
>> This is the referenced line:
>>
>>     $ sed -n 24p add5wrapperlib.c
>> CAMLCBK_INIT(cbk, "add_five");
>>
>>
>> Any ideas what' wrong here?
>
> Yes ;-)
>
> This is exactly why i use assert there.
>
> I introduced a bug: the string in the C file is "add_five", while the
> registered one in the ml file is "add five".
>
>
> Hope this helps
>