From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id WAA30386; Thu, 19 Jun 2003 22:06:26 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id WAA30681 for ; Thu, 19 Jun 2003 22:06:25 +0200 (MET DST) Received: from walnut.he.net (walnut.he.net [64.71.137.114]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id h5JK6OH19015 for ; Thu, 19 Jun 2003 22:06:24 +0200 (MET DST) Received: from localhost (kmacy@localhost) by walnut.he.net (8.8.6p2003-03-31/8.8.2) with ESMTP id NAA15333; Thu, 19 Jun 2003 13:06:27 -0700 Date: Thu, 19 Jun 2003 13:06:27 -0700 (PDT) From: Kip Macy X-Sender: kmacy@walnut.he.net To: Jung Woon Ho cc: caml-list@inria.fr Subject: Re: [Caml-list] Interfacing C and Ocaml In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam: no; 0.00; kip:99 caml-list:01 interfacing:01 -lcurses:01 jung:99 ocamlc:01 -output-obj:01 usr:01 libcamlrun:01 printf:01 sprintf:01 callback:01 wrappers:01 stdio:01 mlvalues:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk try sticking in -L for -lcurses On Thu, 19 Jun 2003, Jung Woon Ho wrote: > Hi, Im trying to implement a simple program that interfaces C and Ocaml. > Here is what I do: > > ocamlc -custom -output-obj -o modcaml.o mod.ml > ocamlc -c modwrap.c > cp /usr/local/lib/ocaml/libcamlrun.a mod.a > ar r mod.a modcaml.o modwrap.o > cc -o prog main.c mod.a -lcurses > > and I get the error: > /usr/lib/gcc-lib/i486-suse-linux/3.2/../../../../i486-suse-linux/bin/ld: > cannot find -lcurses > collect2: ld returned 1 exit status > > I tried cc -o prog main.c mod.a -lcurses -ltermcap and cc -o prog main.c > mod.a -ltermcap but i cant get the program to link. > > Does anybody know how to solve this problem? > > Thank you very much. > > > > > ---------------------mod.ml------------------------------- > (* File mod.ml -- some ``useful'' Caml functions *) > > let rec fib n = if n < 2 then 1 else fib(n-1) + fib(n-2) > > let format_result n = Printf.sprintf "Result is: %d\n" n > > (* Export those two functions to C *) > > let _ = Callback.register "fib" fib > let _ = Callback.register "format_result" format_result > ---------------------------------------------------------- > > --------------------modwrap.c----------------------------- > /* File modwrap.c -- wrappers around the Caml functions */ > > #include > #include > #include > #include > > int fib(int n) > { > static value * fib_closure = NULL; > if (fib_closure == NULL) fib_closure = caml_named_value("fib"); > return Int_val(callback(*fib_closure, Val_int(n))); > } > > char * format_result(int n) > { > static value * format_result_closure = NULL; > if (format_result_closure == NULL) > format_result_closure = caml_named_value("format_result"); > return strdup(String_val(callback(*format_result_closure, Val_int(n)))); > /* We copy the C string returned by String_val to the C heap > so that it remains valid after garbage collection. */ > } > ---------------------------------------------------------- > > -------------------main.c--------------------------------- > /* File main.c -- a sample client for the Caml functions */ > > #include > > int main(int argc, char ** argv) > { > int result; > > /* Initialize Caml code */ > caml_startup(argv); > /* Do some computation */ > result = fib(10); > printf("fib(10) = %s\n", format_result(result)); > return 0; > } > ---------------------------------------------------------- > > _________________________________________________________________ > Help STOP SPAM with the new MSN 8 and get 2 months FREE* > http://join.msn.com/?page=features/junkmail > > ------------------- > To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr > Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners