From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 80FEA7EE80 for ; Sun, 24 Mar 2013 09:00:32 +0100 (CET) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of kakadu.hafanana@gmail.com) identity=pra; client-ip=209.85.212.178; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="kakadu.hafanana@gmail.com"; x-sender="kakadu.hafanana@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of kakadu.hafanana@gmail.com designates 209.85.212.178 as permitted sender) identity=mailfrom; client-ip=209.85.212.178; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="kakadu.hafanana@gmail.com"; x-sender="kakadu.hafanana@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-wi0-f178.google.com) identity=helo; client-ip=209.85.212.178; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="kakadu.hafanana@gmail.com"; x-sender="postmaster@mail-wi0-f178.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlQCAOCxTlHRVdSyiGdsb2JhbABDx2AIFg4BAQEKCRQUBCSCawEbHgMSEF0BEQEFASKIFAEDD6BognKMMoJ7g04KGScNWYh8AQUMklMDiHOFWogajyIWKYQyNw X-IPAS-Result: AlQCAOCxTlHRVdSyiGdsb2JhbABDx2AIFg4BAQEKCRQUBCSCawEbHgMSEF0BEQEFASKIFAEDD6BognKMMoJ7g04KGScNWYh8AQUMklMDiHOFWogajyIWKYQyNw X-IronPort-AV: E=Sophos;i="4.84,900,1355094000"; d="scan'208";a="9010622" Received: from mail-wi0-f178.google.com ([209.85.212.178]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 24 Mar 2013 09:00:32 +0100 Received: by mail-wi0-f178.google.com with SMTP id ez12so1033765wid.11 for ; Sun, 24 Mar 2013 01:00:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=ie+8tAS9s6KPwoyQIsn7680xBwGhebbLVrPUFw3+Yzg=; b=gEoOLkG3m2SbQZTJKwJl+Ij5bbiLWKJSGsMI5MQWk1YKwqpcOKpdLH3j65bE3B6PAW qHb4aK1laU+ob6lPfPWNv7FNbXkaatZ6vuESFZEo7Nt/lVhQqfDx+B8sti2ta4eLJYQv wwFSvLYtoepi0RBRmZmlcfkq2Yco2QKt0y/VcTDJ9dW75WmnTIVwmxj1y07d0ZkXtkDv Ljng01Fpd0Sr80YtTa13wr7HEEh+jpc0JnGB3BYdmZYVrjV09oq/s0/wjF4PY0tgfnto tdvHnwrN4u3GN9uVN1rCb0cIwFviZL9M7HAbzyJr8f8HB8kVXHqd6mCqw8LPof54Wxu1 Wr/w== MIME-Version: 1.0 X-Received: by 10.180.14.202 with SMTP id r10mr11245505wic.8.1364112031723; Sun, 24 Mar 2013 01:00:31 -0700 (PDT) Received: by 10.180.78.8 with HTTP; Sun, 24 Mar 2013 01:00:31 -0700 (PDT) Date: Sun, 24 Mar 2013 12:00:31 +0400 Message-ID: From: Kakadu To: Caml List Content-Type: text/plain; charset=ISO-8859-1 Subject: [Caml-list] Link problems when startup from C++ Hey My OCaml code uses Unix findlib package and I compile it like this ocamlfind opt -package compiler-libs.common,unix -linkpkg -output-obj -dstartup -I ../_build ../_build/qml_wrap.cmxa \ -ccopt -L`ocamlc -where` -ccopt -lunix \ DataItem.cmx MainModel.cmx MiniModel.cmx program.cmx -linkall -o camlcode.o -verbose Effective set of compiler predicates: pkg_compiler-libs,pkg_compiler-libs.common,pkg_unix,autolink,native + ocamlopt.opt -output-obj -dstartup -I ../_build -ccopt -L/home/kakadu/.opam/4.00.1/lib/ocaml -ccopt -lunix -linkall -o camlcode.o -verbose -I /home/kakadu/.opam/4.00.1/lib/ocaml/compiler-libs /home/kakadu/.opam/4.00.1/lib/ocaml/compiler-libs/ocamlcommon.cmxa /home/kakadu/.opam/4.00.1/lib/ocaml/unix.cmxa ../_build/qml_wrap.cmxa DataItem.cmx MainModel.cmx MiniModel.cmx program.cmx + as -o '/tmp/camlstartup3ada06.o' 'camlcode.o.startup.s' + ld -r -o 'camlcode.o' '/tmp/camlstartup3ada06.o' 'program.o' 'MiniModel.o' 'MainModel.o' 'DataItem.o' '../_build/qml_wrap.a' '/home/kakadu/.opam/4.00.1/lib/ocaml/unix.a' '/home/kakadu/.opam/4.00.1/lib/ocaml/compiler-libs/ocamlcommon.a' '/home/kakadu/.opam/4.00.1/lib/ocaml/stdlib.a' It seems that Unix should be statically linked to 'camlcode.o'. After that I want to build executable. g++ -L$QT5_ROOT/qtbase/lib -lQt5Core -lQt5Qml -lQt5Quick -lQt5Gui -L"`ocamlc -where`" -lunix \ ../_build/stubs.o DataItem_c.o moc_DataItem_c.o MainModel_c.o moc_MainModel_c.o MiniModel_c.o moc_MiniModel_c.o camlcode.o main.o -lm -ldl -lasmrun \ -o main And I get many error like this: camlcode.o: In function `camlProgram__files_in_dir_1009': (.text+0x399a): undefined reference to `unix_opendir' /home/kakadu/.opam/4.00.1/build/ocaml/otherlibs/unix/unix.ml:644: undefined reference to `unix_close' camlcode.o: In function `camlUnix__fun_2465': /home/kakadu/.opam/4.00.1/build/ocaml/otherlibs/unix/unix.ml:644: undefined reference to `unix_close' camlcode.o: In function `camlUnix__fun_2157': /home/kakadu/.opam/4.00.1/build/ocaml/otherlibs/unix/unix.ml:644: undefined reference to `unix_setsid' camlcode.o: In function `camlUnix__fun_2159': /home/kakadu/.opam/4.00.1/build/ocaml/otherlibs/unix/unix.ml:644: undefined reference to `unix_tcflow' camlcode.o: In function `camlUnix__fun_2161': /home/kakadu/.opam/4.00.1/build/ocaml/otherlibs/unix/unix.ml:644: undefined reference to `unix_tcflush' etc. Any ideas what I have done wrong? How to link to unix correctly? Kind regards, Kakadu