* Win32 library
@ 2007-06-15 20:48 Christophe TROESTLER
2007-06-15 21:19 ` [Caml-list] " Christophe TROESTLER
2007-06-16 7:43 ` Dmitry Bely
0 siblings, 2 replies; 3+ messages in thread
From: Christophe TROESTLER @ 2007-06-15 20:48 UTC (permalink / raw)
To: O'Caml Mailing List
[-- Attachment #1: Type: Text/Plain, Size: 714 bytes --]
Hi,
I am fighting with the compilation of ocamlodbc under windows (code
here: http://cvs.gna.org/cvsweb/ocamlodbc/?cvsroot=ocamlodbc). The
problem is that
link /verbose /nologo /dll /out:dllocamlodbc.dll /def:ocamlodbc.DEF ocaml_odbc_c.d.obj /LIBPATH:"C:\Program Files\Objective Caml\lib" ocamlrun.lib odbc32.lib
returns the error:
ocaml_odbc_c.d.obj : error LNK2019: unresolved external symbol _caml_local_roots referenced in function _ocamlodbc_initDB_c
dllocamlodbc.dll : fatal error LNK1120: 1 unresolved externals
(complete report attached). What I find strange is that all other
caml symbols are resolved (and ocamlrun.lib matches for
_caml_local_roots). What did I do wrong ?
Cheers,
ChriS
[-- Attachment #2: report.log --]
[-- Type: Text/Plain, Size: 16597 bytes --]
ocamlODBC installation script for Windows
Clement Capel Oct 2003
-----------------------------------------
Assumes VC++ installed
variables set for "cl" and "link"
-----------------------------------------
--- Compile the external functions and create the dll ---
ocamlodbc-2.12>cl /nologo /Ox /MD /DWIN32 -I "C:\Program Files\Objective Caml\lib" -c ocaml_odbc_c.c
ocaml_odbc_c.c
ocamlodbc-2.12>move ocaml_odbc_c.obj ocaml_odbc_c.d.obj 1>NUL
ocamlodbc-2.12>link /verbose /nologo /dll /out:dllocamlodbc.dll /def:ocamlodbc.DEF ocaml_odbc_c.d.obj /LIBPATH:"C:\Program Files\Objective Caml\lib" ocamlrun.lib odbc32.lib
Starting pass 1
Processed /DEFAULTLIB:uuid.lib
Processed /DEFAULTLIB:MSVCRT
Processed /DEFAULTLIB:OLDNAMES
Searching libraries
Searching C:\Program Files\Objective Caml\lib\ocamlrun.lib:
Found _caml_raise_out_of_memory
Referenced in ocaml_odbc_c.d.obj
Loaded ocamlrun.lib(ocamlrun.dll)
Found _caml_alloc_tuple
Referenced in ocaml_odbc_c.d.obj
Loaded ocamlrun.lib(ocamlrun.dll)
Found _caml_modify
Referenced in ocaml_odbc_c.d.obj
Loaded ocamlrun.lib(ocamlrun.dll)
Found _caml_copy_string
Referenced in ocaml_odbc_c.d.obj
Loaded ocamlrun.lib(ocamlrun.dll)
Found _caml_failwith
Referenced in ocaml_odbc_c.d.obj
Loaded ocamlrun.lib(ocamlrun.dll)
Found _caml_alloc
Referenced in ocaml_odbc_c.d.obj
Loaded ocamlrun.lib(ocamlrun.dll)
Found __IMPORT_DESCRIPTOR_ocamlrun
Referenced in ocamlrun.lib(ocamlrun.dll)
Referenced in ocamlrun.lib(ocamlrun.dll)
Referenced in ocamlrun.lib(ocamlrun.dll)
Referenced in ocamlrun.lib(ocamlrun.dll)
Referenced in ocamlrun.lib(ocamlrun.dll)
Referenced in ocamlrun.lib(ocamlrun.dll)
Loaded ocamlrun.lib(ocamlrun.dll)
Found __NULL_IMPORT_DESCRIPTOR
Referenced in ocamlrun.lib(ocamlrun.dll)
Loaded ocamlrun.lib(ocamlrun.dll)
Found \x7focamlrun_NULL_THUNK_DATA
Referenced in ocamlrun.lib(ocamlrun.dll)
Loaded ocamlrun.lib(ocamlrun.dll)
Searching C:\Program Files\Microsoft Platform SDK\Lib\odbc32.lib:
Found _SQLConnect@28
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLAllocConnect@8
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLAllocEnv@4
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLFreeEnv@4
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLFreeConnect@4
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLDisconnect@4
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLTransact@12
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLFreeStmt@8
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLDescribeCol@36
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLFetch@4
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLError@32
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLGetDiagRec@32
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLDriverConnect@32
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLAllocHandle@12
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLBindCol@24
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLColAttributes@28
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLNumResultCols@8
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLRowCount@8
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLExecute@4
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLPrepare@12
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found _SQLAllocStmt@8
Referenced in ocaml_odbc_c.d.obj
Loaded odbc32.lib(ODBC32.dll)
Found __IMPORT_DESCRIPTOR_ODBC32
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Referenced in odbc32.lib(ODBC32.dll)
Loaded odbc32.lib(ODBC32.dll)
Found \x7fODBC32_NULL_THUNK_DATA
Referenced in odbc32.lib(ODBC32.dll)
Loaded odbc32.lib(ODBC32.dll)
Searching C:\Program Files\Microsoft Platform SDK\Lib\uuid.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\LIB\MSVCRT.lib:
Found __imp__malloc
Referenced in ocaml_odbc_c.d.obj
Loaded MSVCRT.lib(MSVCR80.dll)
Found __imp__free
Referenced in ocaml_odbc_c.d.obj
Loaded MSVCRT.lib(MSVCR80.dll)
Found ___security_cookie
Referenced in ocaml_odbc_c.d.obj
Loaded MSVCRT.lib(gs_cookie.obj)
Found @__security_check_cookie@4
Referenced in ocaml_odbc_c.d.obj
Loaded MSVCRT.lib(secchk.obj)
Found __chkstk
Referenced in ocaml_odbc_c.d.obj
Loaded MSVCRT.lib(chkstk.obj)
Found __imp__fflush
Referenced in ocaml_odbc_c.d.obj
Loaded MSVCRT.lib(MSVCR80.dll)
Found __imp__fprintf
Referenced in ocaml_odbc_c.d.obj
Loaded MSVCRT.lib(MSVCR80.dll)
Found __imp____iob_func
Referenced in ocaml_odbc_c.d.obj
Loaded MSVCRT.lib(MSVCR80.dll)
Found __imp__printf
Referenced in ocaml_odbc_c.d.obj
Loaded MSVCRT.lib(MSVCR80.dll)
Found __DllMainCRTStartup@12
Loaded MSVCRT.lib(crtdll.obj)
Found __IMPORT_DESCRIPTOR_MSVCR80
Referenced in MSVCRT.lib(MSVCR80.dll)
Referenced in MSVCRT.lib(MSVCR80.dll)
Referenced in MSVCRT.lib(MSVCR80.dll)
Referenced in MSVCRT.lib(MSVCR80.dll)
Referenced in MSVCRT.lib(MSVCR80.dll)
Referenced in MSVCRT.lib(MSVCR80.dll)
Loaded MSVCRT.lib(MSVCR80.dll)
Found ___report_gsfailure
Referenced in MSVCRT.lib(secchk.obj)
Loaded MSVCRT.lib(gs_report.obj)
Found ___clean_type_info_names
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(tncleanup.obj)
Found _atexit
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(atonexit.obj)
Found __RTC_Terminate
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(initsect.obj)
Found __imp___encode_pointer
Referenced in MSVCRT.lib(crtdll.obj)
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Found __imp___malloc_crt
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Found __imp___encoded_null
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Found __imp___decode_pointer
Referenced in MSVCRT.lib(crtdll.obj)
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Found __IsNonwritableInCurrentImage
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(pesect.obj)
Found __initterm
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Found ___xc_a
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(cinitexe.obj)
Processed /DEFAULTLIB:kernel32.lib
Processed /DISALLOWLIB:libc.lib
Processed /DISALLOWLIB:libcd.lib
Processed /DISALLOWLIB:libcmt.lib
Processed /DISALLOWLIB:libcmtd.lib
Processed /DISALLOWLIB:msvcrtd.lib
Found __initterm_e
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Found __amsg_exit
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Found ___native_startup_state
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(natstart.obj)
Found __adjust_fdiv
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(adjustfd.obj)
Found __imp___adjust_fdiv
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Found ___CppXcptFilter
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Found _DllMain@12
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(dllmain.obj)
Found __SEH_epilog4
Referenced in MSVCRT.lib(crtdll.obj)
Referenced in MSVCRT.lib(atonexit.obj)
Referenced in MSVCRT.lib(pesect.obj)
Loaded MSVCRT.lib(sehprolg4.obj)
Found __except_handler4
Referenced in MSVCRT.lib(crtdll.obj)
Referenced in MSVCRT.lib(atonexit.obj)
Referenced in MSVCRT.lib(pesect.obj)
Referenced in MSVCRT.lib(sehprolg4.obj)
Loaded MSVCRT.lib(chandler4gs.obj)
Found ___security_init_cookie
Referenced in MSVCRT.lib(crtdll.obj)
Loaded MSVCRT.lib(gs_support.obj)
Found \x7fMSVCR80_NULL_THUNK_DATA
Referenced in MSVCRT.lib(MSVCR80.dll)
Loaded MSVCRT.lib(MSVCR80.dll)
Found __crt_debugger_hook
Referenced in MSVCRT.lib(gs_report.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Found ___clean_type_info_names_internal
Referenced in MSVCRT.lib(tncleanup.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Found __unlock
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Found ___dllonexit
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Found __lock
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Found __imp___onexit
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Found __except_handler4_common
Referenced in MSVCRT.lib(chandler4gs.obj)
Loaded MSVCRT.lib(MSVCR80.dll)
Searching C:\Program Files\Microsoft Visual Studio 8\VC\LIB\OLDNAMES.lib:
Searching C:\Program Files\Microsoft Platform SDK\Lib\kernel32.lib:
Found __imp__InterlockedExchange@8
Referenced in MSVCRT.lib(crtdll.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__Sleep@4
Referenced in MSVCRT.lib(crtdll.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__InterlockedCompareExchange@12
Referenced in MSVCRT.lib(crtdll.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__TerminateProcess@8
Referenced in MSVCRT.lib(gs_report.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__GetCurrentProcess@0
Referenced in MSVCRT.lib(gs_report.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__UnhandledExceptionFilter@4
Referenced in MSVCRT.lib(gs_report.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__SetUnhandledExceptionFilter@4
Referenced in MSVCRT.lib(gs_report.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__IsDebuggerPresent@0
Referenced in MSVCRT.lib(gs_report.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__DisableThreadLibraryCalls@4
Referenced in MSVCRT.lib(dllmain.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__QueryPerformanceCounter@4
Referenced in MSVCRT.lib(gs_support.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__GetTickCount@0
Referenced in MSVCRT.lib(gs_support.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__GetCurrentThreadId@0
Referenced in MSVCRT.lib(gs_support.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__GetCurrentProcessId@0
Referenced in MSVCRT.lib(gs_support.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__GetSystemTimeAsFileTime@4
Referenced in MSVCRT.lib(gs_support.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __IMPORT_DESCRIPTOR_KERNEL32
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Loaded kernel32.lib(KERNEL32.dll)
Found \x7fKERNEL32_NULL_THUNK_DATA
Referenced in kernel32.lib(KERNEL32.dll)
Loaded kernel32.lib(KERNEL32.dll)
Searching C:\Program Files\Objective Caml\lib\ocamlrun.lib:
Searching C:\Program Files\Microsoft Platform SDK\Lib\odbc32.lib:
Searching C:\Program Files\Microsoft Platform SDK\Lib\uuid.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\LIB\MSVCRT.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\LIB\OLDNAMES.lib:
Finished searching libraries
Generating .exp file
Creating library dllocamlodbc.lib and object dllocamlodbc.exp
Finished generating .exp file
Searching libraries
Searching C:\Program Files\Objective Caml\lib\ocamlrun.lib:
Searching C:\Program Files\Microsoft Platform SDK\Lib\odbc32.lib:
Searching C:\Program Files\Microsoft Platform SDK\Lib\uuid.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\LIB\MSVCRT.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\LIB\OLDNAMES.lib:
Searching C:\Program Files\Microsoft Platform SDK\Lib\kernel32.lib:
Finished searching libraries
Finished pass 1
Searching libraries
Searching C:\Program Files\Objective Caml\lib\ocamlrun.lib:
Searching C:\Program Files\Microsoft Platform SDK\Lib\odbc32.lib:
Searching C:\Program Files\Microsoft Platform SDK\Lib\uuid.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\LIB\MSVCRT.lib:
Found __load_config_used
Loaded MSVCRT.lib(loadcfg.obj)
Searching C:\Program Files\Microsoft Visual Studio 8\VC\LIB\OLDNAMES.lib:
Searching C:\Program Files\Microsoft Platform SDK\Lib\kernel32.lib:
Searching C:\Program Files\Objective Caml\lib\ocamlrun.lib:
Searching C:\Program Files\Microsoft Platform SDK\Lib\odbc32.lib:
Searching C:\Program Files\Microsoft Platform SDK\Lib\uuid.lib:
Finished searching libraries
ocaml_odbc_c.d.obj : error LNK2019: unresolved external symbol _caml_local_roots referenced in function _ocamlodbc_initDB_c
dllocamlodbc.dll : fatal error LNK1120: 1 unresolved externals
ocamlodbc-2.12>copy dllocamlodbc.dll "C:\Program Files\Objective Caml\lib"\stublibs 1>NUL
---
--- Make a custom runtime library ---
ocamlodbc-2.12>ocamlc -a -o ocamlodbc.cma -custom ocaml_odbc.ml ocamlodbc.mli ocamlodbc.ml ocaml_odbc_c.obj -dllib -locamlodbc -cclib -lodbc32
ocamlodbc-2.12>copy ocamlodbc.cma "C:\Program Files\Objective Caml\lib" 1>NUL
ocamlodbc-2.12>copy ocamlodbc.cmi "C:\Program Files\Objective Caml\lib" 1>NUL
---
--- Make a native code library ---
ocamlodbc-2.12>ocamlopt -a -o ocamlodbc.cmxa ocaml_odbc.ml ocamlodbc.mli ocamlodbc.ml ocaml_odbc_c.obj -cclib -lodbc32
ocamlodbc-2.12>copy ocamlodbc.cmxa "C:\Program Files\Objective Caml\lib" 1>NUL
ocamlodbc-2.12>copy ocamlodbc.cmi "C:\Program Files\Objective Caml\lib" 1>NUL
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Caml-list] Win32 library
2007-06-15 20:48 Win32 library Christophe TROESTLER
@ 2007-06-15 21:19 ` Christophe TROESTLER
2007-06-16 7:43 ` Dmitry Bely
1 sibling, 0 replies; 3+ messages in thread
From: Christophe TROESTLER @ 2007-06-15 21:19 UTC (permalink / raw)
To: O'Caml Mailing List
Replying to myself:
On Fri, 15 Jun 2007, Christophe TROESTLER <Christophe.Troestler+ocaml@umh.ac.be> wrote:
>
> link /verbose /nologo /dll /out:dllocamlodbc.dll /def:ocamlodbc.DEF ocaml_odbc_c.d.obj /LIBPATH:"C:\Program Files\Objective Caml\lib" ocamlrun.lib odbc32.lib
I "forgot" to define CAML_DLL in
cl /nologo /Ox /MD /DWIN32 /DCAML_DLL -I "%OCAMLLIB%" -c ocaml_odbc_c.c
Hopefully this will help other people. :)
ChriS
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Caml-list] Win32 library
2007-06-15 20:48 Win32 library Christophe TROESTLER
2007-06-15 21:19 ` [Caml-list] " Christophe TROESTLER
@ 2007-06-16 7:43 ` Dmitry Bely
1 sibling, 0 replies; 3+ messages in thread
From: Dmitry Bely @ 2007-06-16 7:43 UTC (permalink / raw)
To: Caml List
[-- Attachment #1: Type: text/plain, Size: 1000 bytes --]
On 6/16/07, Christophe TROESTLER <Christophe.Troestler+ocaml@umh.ac.be> wrote:
> Hi,
>
> I am fighting with the compilation of ocamlodbc under windows (code
> here: http://cvs.gna.org/cvsweb/ocamlodbc/?cvsroot=ocamlodbc). The
> problem is
[...]
> (complete report attached). What I find strange is that all other
> caml symbols are resolved (and ocamlrun.lib matches for
> _caml_local_roots).
Nothing strange: caml_local_roots is a variable (not a function) so it
exported differently in case of byte/native code Ocaml runtime
(dynamic/static library respectively). So you should compile your C
source files with different compiler options, not just copy .obj
files as the library author does. In other words, INSTALL_WIN32.bat is
broken (some time ago I also run into that). Here are my changes
(.diff is attached):
- Fix compilation problems
- Use ODBC2
- DLL support for the byte code
- Dmitry Bely
P.S. In fact I finally wrote a couple-line Omakefile and forgot about
all that problems :)
[-- Attachment #2: ocamlodbc.diff --]
[-- Type: application/octet-stream, Size: 1960 bytes --]
Index: INSTALL_WIN32.bat
===================================================================
RCS file: D:\Work\cvsroot/config/ocamlodbc/INSTALL_WIN32.bat,v
retrieving revision 1.1
retrieving revision 1.3
diff -u -r1.1 -r1.3
--- INSTALL_WIN32.bat 14 Sep 2006 13:51:31 -0000 1.1
+++ INSTALL_WIN32.bat 20 Sep 2006 16:37:10 -0000 1.3
@@ -7,17 +7,21 @@
@echo -----------------------------------------
@echo Compile the external functions and create the dll
-cl /nologo /Ox /MD /DWIN32 -I "%OCAMLLIB%"\caml -c ocaml_odbc_c.c
-move ocaml_odbc_c.obj ocaml_odbc_c.d.obj
-link /nologo /dll /out:dllocamlodbc.dll /def:ocamlodbc.DEF ocaml_odbc_c.d.obj "%OCAMLLIB%"\ocamlrun.lib libodbc32.lib
+cl /nologo /Ox /MT /DWIN32 /DODBC2 -I "%OCAMLLIB%"\caml -c ocaml_odbc_c.c
+lib /nologo /out:libocamlodbc.lib ocaml_odbc_c.obj
+copy libocamlodbc.lib "%OCAMLLIB%"
+cl /nologo /Ox /MD /DCAML_DLL /DWIN32 /DODBC2 -I "%OCAMLLIB%"\caml -c ocaml_odbc_c.c -Foocaml_odbc_c.d.obj
+link /nologo /dll /out:dllocamlodbc.dll /def:ocamlodbc.DEF ocaml_odbc_c.d.obj "%OCAMLLIB%"\ocamlrun.lib odbc32.lib
copy dllocamlodbc.dll "%OCAMLLIB%"\stublibs
@echo Make a native code library
-ocamlopt -a -o ocamlodbc.cmxa ocaml_odbc.ml ocamlodbc.mli ocamlodbc.ml ocaml_odbc_c.obj -cclib -lodbc32
-copy ocamlodbc.cmxa "%OCAMLLIB%"
+ocamlopt -a -o ocamlodbc.cmxa ocaml_odbc.ml ocamlodbc.mli ocamlodbc.ml ocaml_odbc_c.obj -cclib odbc32.lib
+copy ocamlodbc.mli "%OCAMLLIB%"
copy ocamlodbc.cmi "%OCAMLLIB%"
+copy ocamlodbc.cmxa "%OCAMLLIB%"
-@echo Make a custom runtime library
-ocamlc -a -o ocamlodbc.cma -custom ocaml_odbc.ml ocamlodbc.mli ocamlodbc.ml ocaml_odbc_c.obj -dllib -locamlodbc -cclib -lodbc32
-copy ocamlodbc.cma "%OCAMLLIB%"
+@echo Make a byte code DLL
+ocamlc -a -o ocamlodbc.cma ocaml_odbc.ml ocamlodbc.mli ocamlodbc.ml -dllib -locamlodbc
+copy ocamlodbc.mli "%OCAMLLIB%"
copy ocamlodbc.cmi "%OCAMLLIB%"
+copy ocamlodbc.cma "%OCAMLLIB%"
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-06-16 7:43 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-06-15 20:48 Win32 library Christophe TROESTLER
2007-06-15 21:19 ` [Caml-list] " Christophe TROESTLER
2007-06-16 7:43 ` Dmitry Bely
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox