From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id BBE95BBC4 for ; Mon, 16 Mar 2009 14:48:06 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAPH1vUnD2MUqgWdsb2JhbACVQgEBFiK+RYN/Bg X-IronPort-AV: E=Sophos;i="4.38,373,1233529200"; d="scan'208";a="24389578" Received: from bluelynx4.ukhost4u.com ([195.216.197.42]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 16 Mar 2009 14:48:03 +0100 Received: from [78.105.203.81] (helo=feast.lan) by bluelynx4.ukhost4u.com with esmtpa (Exim 4.69) (envelope-from ) id 1LjDAf-0004dP-Kc for caml-list@yquem.inria.fr; Mon, 16 Mar 2009 13:48:02 +0000 Message-Id: From: John Whitington To: caml-list@yquem.inria.fr Content-Type: text/plain; charset=WINDOWS-1252; format=flowed; delsp=yes Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Apple Message framework v930.3) Subject: Compiling with Xcode Date: Mon, 16 Mar 2009 13:47:59 +0000 X-Mailer: Apple Mail (2.930.3) X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - bluelynx4.ukhost4u.com X-AntiAbuse: Original Domain - yquem.inria.fr X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - coherentgraphics.co.uk X-Source: X-Source-Args: X-Source-Dir: X-Spam: no; 0.00; ocaml:01 ocaml:01 ocamlc:01 mli:01 ocamlopt:01 cmxa:01 cmxa:01 bigarray:01 ocamlc:01 mli:01 ocamlopt:01 bigarray:01 cmx:01 cmx:01 -output-obj:01 Hi Folks, I'm building an Ocaml library with interface to be used from C main =20 program, as per the instructions in the manual. Stage 1. Build the mixed C/OCaml library ocamlc cpdf.mli; ocamlopt -I . unix.cmxa str.cmxa bigarray.cmxa cgutil.cmxa =20 camlpdf.cmxa cpdf.ml; ocamlc cpdflib.mli; ocamlopt -I . unix.cmxa str.cmxa bigarray.cmxa cgutil.cmxa =20 camlpdf.cmxa cpdf.cmx cpdflib.ml; ocamlc cpdflibc.mli; ocamlopt -I . unix.cmxa str.cmxa bigarray.cmxa cgutil.cmxa =20 camlpdf.cmxa cpdf.cmx cpdflib.cmx cpdflibc.ml; ocamlc cpdflibwrapper.c; ocamlopt -output-obj -o cpdflibc.o unix.cmxa str.cmxa bigarray.cmxa =20 cgutil.cmxa camlpdf.cmxa cpdf.cmx cpdflib.cmx cpdflibc.cmx; cp /usr/local/lib/ocaml/libasmrun.a cpdflib.a; ar r cpdflib.a cpdflibc.o cpdflibwrapper.o Stage 2. Then compiling and linking the main program: cc -L'/usr/local/lib/ocaml' -lunix -lbigarray -lstr -lz -o test =20 cpdflibc-test.c zlibstubs.o cpdflib.a Which all works fine. I'm now trying to compile this with XCode - eventually as part of a =20 Cocoa/Objective C program, but for now, just as a plain C project. =20 Stage (1) above will still be done outside xcode, just the main =20 program compilation and link in xcode. Below is the compilation of a simple Hello World C project in Xcode to =20= achieve the same aim as stage (2) of the compilation above. It picks =20 up all the ocaml libraries ok, and cpdflib.a and zlibstubs.o. But it =20 fails the final link stage. Can anyone explain the failure or suggest what to try? One of the =20 extra flags Xcode is adding? = --------------------------------------------------------------------------= - Building target =93Cversion=94 of project =93Cversion=94 with = configuration =20 =93Debug=94 Checking Dependencies CompileC build/Cversion.build/Debug/Cversion.build/Objects-normal/i386/=20= main.o /Users/john/Desktop/Cversion/main.c normal i386 c =20 com.apple.compilers.gcc.4_0 cd /Users/john/Desktop/Cversion /Developer/usr/bin/gcc-4.0 -x c -arch i386 -fmessage-length=3D0 = -pipe -std=3Dc99 -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -=20 Wreturn-type -Wunused-variable -isysroot /Developer/SDKs/MacOSX10.5.sdk -mfix-and-continue -mmacosx-version-min=3D10.5 -gdwarf-2 -iquote /Users/john/Desktop/Cversion/build/Cversion.build/Debug/=20 Cversion.build/Cversion-generated-files.hmap -I/Users/john/Desktop/Cversion/build/Cversion.build/Debug/=20 Cversion.build/Cversion-own-target-headers.hmap -I/Users/john/Desktop/Cversion/build/Cversion.build/Debug/=20 Cversion.build/Cversion-all-target-headers.hmap -iquote /Users/john/Desktop/Cversion/build/Cversion.build/Debug/=20 Cversion.build/Cversion-project-headers.hmap -F/Users/john/Desktop/Cversion/build/Debug -I/Users/john/Desktop/Cversion/build/Debug/include -I/Developer/SDKs/MacOSX10.5.sdk/usr/local/lib/ocaml -I/Users/john/svnrepos/trunk -I/Users/john/Desktop/Cversion/build/Cversion.build/Debug/=20 Cversion.build/DerivedSources -c /Users/john/Desktop/Cversion/main.c -o /Users/john/Desktop/Cversion/build/Cversion.build/Debug/=20 Cversion.build/Objects-normal/i386/main.o Ld /Users/john/Desktop/Cversion/build/Debug/Cversion normal i386 cd /Users/john/Desktop/Cversion setenv MACOSX_DEPLOYMENT_TARGET 10.5 /Developer/usr/bin/gcc-4.0 -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk -L/Users/john/Desktop/Cversion/build/Debug -L/Developer/SDKs/MacOSX10.5.sdk/usr/local/lib/ocaml -L/Users/john/svnrepos/trunk -L/Users/john/Desktop/Cversion/../../svnrepos/trunk -F/Users/john/Desktop/Cversion/build/Debug -filelist /Users/john/Desktop/Cversion/build/Cversion.build/Debug/=20= Cversion.build/Objects-normal/i386/Cversion.LinkFileList -mmacosx-version-min=3D10.5 -L/usr/local/lib/ocaml -lunix -lbigarray -lstr -lz /Users/john/Desktop/Cversion/../../svnrepos/trunk/cpdflib.a /Users/john/Desktop/Cversion/../../svnrepos/trunk/zlibstubs.o -o /Users/john/Desktop/Cversion/build/Debug/Cversion Undefined symbols: "_caml_atom_table", referenced from: _caml_atom_table$non_lazy_ptr in cpdflib.a(alloc.o) _caml_atom_table$non_lazy_ptr in cpdflib.a(intern.o) _caml_atom_table$non_lazy_ptr in libunix.a(gethost.o) _caml_atom_table$non_lazy_ptr in cpdflib.a(array.o) _caml_atom_table$non_lazy_ptr in libstr.a(strstubs.o) _caml_atom_table$non_lazy_ptr in cpdflib.a(obj.o) "_caml_code_area_start", referenced from: _caml_code_area_start$non_lazy_ptr in cpdflib.a(intern.o) _caml_code_area_start$non_lazy_ptr in cpdflib.a(extern.o) _caml_code_area_start$non_lazy_ptr in cpdflib.a(signals_asm.o) "_caml_code_area_end", referenced from: _caml_code_area_end$non_lazy_ptr in cpdflib.a(intern.o) _caml_code_area_end$non_lazy_ptr in cpdflib.a(extern.o) _caml_code_area_end$non_lazy_ptr in cpdflib.a(signals_asm.o) ld: symbol(s) not found collect2: ld returned 1 exit status (The -filelist contains the file main.o) With Thanks, --=20 John Whitington Coherent Graphics Ltd http://www.coherentpdf.com/