I really hope I can find some help here.
My goal is to build levmar.lib for Windows to be used in numerical analysis apps. Here is what I have done so far:
- Library versions: levmar 2.3, CLAPACK 3.1.1
- Downloaded CLAPACK for MSVC and using ready-built libraries in 'LIB' folder.
- Modifications to levmar Makefile.vc:
- Code: Select all
LAPACKLIBS_PATH=C:\MB\ExternalLibraries\levmar\levmar-2.3\LIB
- Code: Select all
#LAPACKLIBS=clapack.lib blas.lib libF77.lib libI77.lib
LAPACKLIBS=clapack.lib cblaswrap.lib libf2c.lib tmglib.lib
- Build levmar.lib:
- Code: Select all
nmake /f Makefile.vc levmar.lib
- Build finishes no problems.
- Now I try to build the demo program from levmar:
- Code: Select all
nmake /f Makefile.vc lmdemo.exe
- I get the following errors:
- Code: Select all
LIBCMT.lib(invarg.obj) : error LNK2005: __invoke_watson already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(dosmap.obj) : error LNK2005: __errno already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(tidtable.obj) : error LNK2005: __encode_pointer already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(tidtable.obj) : error LNK2005: __decode_pointer already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: __amsg_exit already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: __initterm_e already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: _exit already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: __exit already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: __cexit already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(mlock.obj) : error LNK2005: __unlock already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(mlock.obj) : error LNK2005: __lock already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(setlocal.obj) : error LNK2005: __configthreadlocale already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(winxfltr.obj) : error LNK2005: __XcptFilter already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(crt0init.obj) : error LNK2005: ___xi_a already defined in MSVCRT.lib(cinitexe.obj)
LIBCMT.lib(crt0init.obj) : error LNK2005: ___xi_z already defined in MSVCRT.lib(cinitexe.obj)
LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_a already defined in MSVCRT.lib(cinitexe.obj)
LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in MSVCRT.lib(cinitexe.obj)
LIBCMT.lib(hooks.obj) : error LNK2005: "void __cdecl terminate(void)" (?terminate@@YAXXZ) already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(winsig.obj) : error LNK2005: _signal already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(crt0.obj) : error LNK2005: _mainCRTStartup already defined in MSVCRT.lib(crtexe.obj)
LIBCMT.lib(errmode.obj) : error LNK2005: ___set_app_type already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(atox.obj) : error LNK2005: _atoi already defined in MSVCRT.lib(MSVCR90.dll)
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
levmar.lib(misc.obj) : error LNK2019: unresolved external symbol _sgemm_ referenced in function _slevmar_trans_mat_mat_mult
levmar.lib(misc.obj) : error LNK2019: unresolved external symbol _dgemm_ referenced in function _dlevmar_trans_mat_mat_mult
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_sdot referenced in function _f2c_sdot
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_ddot referenced in function _f2c_ddot
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_cdotu_sub referenced in function _f2c_cdotu
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_cdotc_sub referenced in function _f2c_cdotc
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_zdotu_sub referenced in function _f2c_zdotu
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_zdotc_sub referenced in function _f2c_zdotc
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_snrm2 referenced in function _f2c_snrm2
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_sasum referenced in function _f2c_sasum
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_dnrm2 referenced in function _f2c_dnrm2
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_dasum referenced in function _f2c_dasum
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_scnrm2 referenced in function _f2c_scnrm2
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_scasum referenced in function _f2c_scasum
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_dznrm2 referenced in function _f2c_dznrm2
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_dzasum referenced in function _f2c_dzasum
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_isamax referenced in function _f2c_isamax
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_idamax referenced in function _f2c_idamax
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_icamax referenced in function _f2c_icamax
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_izamax referenced in function _f2c_izamax
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_sswap referenced in function _f2c_sswap
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_scopy referenced in function _f2c_scopy
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_saxpy referenced in function _f2c_saxpy
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_dswap referenced in function _f2c_dswap
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_dcopy referenced in function _f2c_dcopy
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_daxpy referenced in function _f2c_daxpy
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_cswap referenced in function _f2c_cswap
cblaswrap.lib(cblaswr.obj) : error LNK2019: unresolved external symbol _cblas_ccopy referenced in function _f2c_ccopy
...
- I tried to use /NODEFAULTLIB:MSVCRT and /NODEFAULTLIB:LIBCMT to try to fix the first problem, but it only introduced this:
- Code: Select all
libf2c.lib(wrtfmt1.obj) : error LNK2001: unresolved external symbol __fltused
libf2c.lib(wref1.obj) : error LNK2019: unresolved external symbol __fltused referenced in function _wrt_E
libf2c.lib(pow_ri1.obj) : error LNK2001: unresolved external symbol __fltused
libf2c.lib(d_sign1.obj) : error LNK2001: unresolved external symbol __fltused
libf2c.lib(pow_di1.obj) : error LNK2001: unresolved external symbol __fltused
libf2c.lib(i_nint1.obj) : error LNK2001: unresolved external symbol __fltused
clapack.lib(dlazq41.obj) : error LNK2001: unresolved external symbol __fltused
cblaswrap.lib(cblaswr.obj) : error LNK2001: unresolved external symbol __fltused
libf2c.lib(r_sign1.obj) : error LNK2001: unresolved external symbol __fltused
libf2c.lib(pow_dd1.obj) : error LNK2001: unresolved external symbol __fltused
...
Now, I understand that __fltused is part of msvcrt.lib!
I don't know what is the right way to build levmar.lib or what libraries to link in while building levmar to get it right.
Appreciate any help, thank you.