caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: <RABIH.ELCHAAR@sgam.com>
To: <bohannon@seas.upenn.edu>, <caml-list@yquem.inria.fr>
Subject: RE: [Caml-list] how to use c wrapper files in libraries
Date: Mon, 20 Jul 2009 16:58:14 +0200	[thread overview]
Message-ID: <1BB928AA56A7E74DB134B7F5CDDA390C056072F1@frcor-exmb04.europe.am.socgen> (raw)
In-Reply-To: <c413fcb70907200728r1ca750a1s2fa57ccc9a4b0866@mail.gmail.com>

I am not familiar with this specific library.
In the general approach, you compile your c code, and package it into a library, let's say libA.a

Then while building your sndfile.cma, you should pass the option
ocamlc -a -o sndfile.cma -cclib -lA ...

A caml executable linked with your library will have also libA.a passed in the linking phase.

Using ocamlc -verbose could give you a hint to which files are missing.

Hope this helps,

Rabih

-----Message d'origine-----
De : caml-list-bounces@yquem.inria.fr [mailto:caml-list-bounces@yquem.inria.fr] De la part de Aaron Bohannon
Envoyé : lundi 20 juillet 2009 16:28
À : caml-list@yquem.inria.fr
Objet : [Caml-list] how to use c wrapper files in libraries

Hello,

I am trying to use the wrapper for libsndfile contributed by Erik de
Castro Lopo (http://caml.inria.fr/cgi-bin/hump.en.cgi?contrib=556).
The wrapper code compiles just fine.  And the tests that use the OCaml
library it builds work just fine.  However, I am having a frustrating
compile-time error when I try to compile my program in a different
directory.

The wrapper code is being packaged into an OCaml library using the
following command:

ocamlc -a -o sndfile.cma -custom sndfile_stub.o sndfile.cmo \
  -ccopt -L/usr/local/lib -cclib -lsndfile

Within the same directory, the test program can be successfully compiled with:

ocamlc -o test_sndfile sndfile.cma test_sndfile.ml

Within a different directory, I used:

ocamlc -o mytest -I /path/to/libsndfile-ocaml/files/   sndfile.cma   mytest.ml

And I get:

powerpc-apple-darwin8-gcc-4.0.1: sndfile_stub.o: No such file or directory
Error while building custom runtime system

I have tried setting every path-related option I could find, and
nothing helped.  I tried reading everything I could find about
compiling and using c wrappers for OCaml, but there is a severe lack
of documentation on the topic.  In particular, I could find no example
of a c object file being given as an argument to an "ocamlc -a"
command, so I am not sure what that is supposed to do, which makes it
impossible for me to understand this error message.

I am using OCaml 3.10.1 on OS X 10.4.  Any help would be appreciated.

 - Aaron

_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs
This message and any attachments (the "message") are confidential, intended solely for the addressee(s), and may contain legally privileged information. 
Any unauthorised use or dissemination is prohibited. 
E-mails are susceptible to alteration. 
Neither Societe Generale Asset Management nor any of its subsidiaries or affiliates shall be liable for the message if altered, changed or falsified. 
  
Find out more about Societe Generale Asset Management's proposal on www.sgam.com
  
                                ******** 
  
Ce message et toutes les pieces jointes (ci-apres le "message") sont confidentiels et susceptibles de contenir des informations couvertes par le secret professionnel.
Ce message est etabli a l'intention exclusive de ses destinataires.
Toute utilisation ou diffusion non autorisee est interdite. 
Tout message electronique est susceptible d'alteration. Societe Generale Asset Management et ses filiales declinent toute responsabilite au titre de ce message s'il a ete altere, deforme ou falsifie. 

Decouvrez l'offre et les services de Societe Generale Asset Management sur le site www.sgam.fr


  reply	other threads:[~2009-07-20 14:57 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-20 14:28 Aaron Bohannon
2009-07-20 14:58 ` RABIH.ELCHAAR [this message]
2009-07-20 16:21   ` [Caml-list] " Aaron Bohannon
2009-07-21  8:48     ` RABIH.ELCHAAR
2009-07-21 13:26       ` Aaron Bohannon
2009-07-20 23:40 ` Erik de Castro Lopo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1BB928AA56A7E74DB134B7F5CDDA390C056072F1@frcor-exmb04.europe.am.socgen \
    --to=rabih.elchaar@sgam.com \
    --cc=bohannon@seas.upenn.edu \
    --cc=caml-list@yquem.inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).