From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id SAA25596 for caml-red; Wed, 8 Nov 2000 18:28:01 +0100 (MET) 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 UAA06839 for ; Tue, 7 Nov 2000 20:22:47 +0100 (MET) Received: from mail.arc.nasa.gov (pony1.arc.nasa.gov [143.232.48.201]) by concorde.inria.fr (8.11.1/8.10.0) with ESMTP id eA7JMkb20810 for ; Tue, 7 Nov 2000 20:22:46 +0100 (MET) Received: from artemis.arc.nasa.gov (pjl.arc.nasa.gov [128.102.115.232]) by mail.arc.nasa.gov (8.9.3/8.9.3) with ESMTP id LAA07117 for ; Tue, 7 Nov 2000 11:22:41 -0800 (PST) Message-ID: <3A0855AC.77F9C627@artemis.arc.nasa.gov> Date: Tue, 07 Nov 2000 11:19:08 -0800 From: Charles Neveu X-Mailer: Mozilla 4.74 [en] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: caml-list@inria.fr Subject: linking ocaml in multithreaded shared dll app Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: weis@pauillac.inria.fr I'm trying to link the ocaml library into a Windows NT 4.0, MS VC++ 6.0 application that uses MFC in a shared dll (because another library, OpenInventor, has to be linked this way). I'm getting an unresolved external symbol error for the symbols __pctype, ___mb_cur_max, and __dosmaperr from files like win32.obj, read.obj, write.obj, etc. (complete text at bottom). I'm not a MSVC++ expert, but I'm guessing that the libunix library is compiled to be linked with a statically-linked MFC library. Is this right? Is there anyway to compile it to link to a dynamically-linked MFC library? Or is there something else going on? Charles Here is the linker output (ignore the first few Maestro errors, I'm porting that): --------------------Configuration: talkdll - Win32 Debug-------------------- Compiling... Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. cl /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_AFXDLL" /Fp"Debug/talkdll.pch" /Yc"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c "E:\neveu\Development\talkdll\StdAfx.cpp" StdAfx.cpp Note: reusing persistent precompiled header Compiling... Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. cl /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_AFXDLL" /Fp"Debug/talkdll.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c "E:\neveu\Development\talkdll\Mbr.cpp" "E:\neveu\Development\talkdll\talkdll.cpp" "E:\neveu\Development\talkdll\talkdllDlg.cpp" Skipping... (no relevant changes detected) Mbr.cpp talkdll.cpp talkdllDlg.cpp Linking... msvcirtd.lib(MSVCIRTD.dll) : error LNK2005: "public: class ostream & __thiscall ostream::operator<<(class ostream & (__cdecl*)(class ostream &))" (??6ostream@@QAEAAV0@P6AAAV0@AAV0@@Z@Z) already defined in libmae-nt.lib(Maestro_Types.obj) msvcirtd.lib(MSVCIRTD.dll) : error LNK2005: "class ostream & __cdecl endl(class ostream &)" (?endl@@YAAAVostream@@AAV1@@Z) already defined in libmae-nt.lib(Maestro_Types.obj) libmae-nt.lib(Maestro_GroupMember.obj) : error LNK2001: unresolved external symbol "class ostream_withassign cerr" (?cerr@@3Vostream_withassign@@A) libmae-nt.lib(Maestro_GroupMember.obj) : error LNK2001: unresolved external symbol "class ostream_withassign cout" (?cout@@3Vostream_withassign@@A) libmae-nt.lib(win32.obj) : error LNK2001: unresolved external symbol __pctype libmae-nt.lib(win32.obj) : error LNK2001: unresolved external symbol ___mb_cur_max libmae-nt.lib(read.obj) : error LNK2001: unresolved external symbol __dosmaperr libmae-nt.lib(write.obj) : error LNK2001: unresolved external symbol __dosmaperr libmae-nt.lib(close_on.obj) : error LNK2001: unresolved external symbol __dosmaperr libmae-nt.lib(createprocess.obj) : error LNK2001: unresolved external symbol __dosmaperr libmae-nt.lib(spawn-nt.obj) : error LNK2001: unresolved external symbol __dosmaperr libmae-nt.lib(dup.obj) : error LNK2001: unresolved external symbol __dosmaperr libmae-nt.lib(lseek.obj) : error LNK2001: unresolved external symbol __dosmaperr libmae-nt.lib(open.obj) : error LNK2001: unresolved external symbol __dosmaperr libmae-nt.lib(close.obj) : error LNK2001: unresolved external symbol __dosmaperr libmae-nt.lib(dup2.obj) : error LNK2001: unresolved external symbol __dosmaperr libmae-nt.lib(pipe.obj) : error LNK2001: unresolved external symbol __dosmaperr libmae-nt.lib(winwait.obj) : error LNK2001: unresolved external symbol __dosmaperr libmae-nt.lib(envir.obj) : error LNK2001: unresolved external symbol __environ libmae-nt.lib(execvp.obj) : error LNK2001: unresolved external symbol __environ Debug/talkdll.exe : fatal error LNK1120: 6 unresolved externals Error executing link.exe. talkdll.exe - 21 error(s), 0 warning(s) -- Dr. Charles Frederick Neveu T: 650 604-2525 Autonomy and Robotics Group F: 650 604-4036 NASA Ames Research Center E: neveu@artemis.arc.nasa.gov Mail Stop 269-4 W: http://img.arc.nasa.gov/~neveu Moffett Field, CA 94035-1000