R: [Mapserver-users] Compiling mapserver with gdal

Frank Warmerdam warmerdam at pobox.com
Wed Mar 31 10:42:17 EST 2004


Ballini Yvain wrote:
> I've set:
> 
> OPTFLAGS=	/nologo /Ox /MT $(WARNING_LEVEL) $(DEBUG)
> LINKER_FLAGS =	 /NODEFAULTLIB:libcmt /DEBUG and it gives me:
> 
> Creating library gdal_i.lib and object gdal_i.exp
> ogr.lib(ogrct.obj) : error LNK2019: unresolved external symbol __HUGE referenced in function "public: virtual int __thiscall OGRProj4CT::TransformEx(int,double *,double *,double *,int *)" (?TransformEx at OGRProj4CT@@UAEHHPAN00PAH at Z)
> gdal12.dll : fatal error LNK1120: 1 unresolved externals
> 
> If set only
> OPTFLAGS=	/nologo /Ox /MT $(WARNING_LEVEL) $(DEBUG)
>  it gives me a lot of runtime libraries conflicts
> 
> LIBCMT.lib(dosmap.obj) : error LNK2005: __errno already defined in MSVCRT.lib(MSVCR71.dll)
> ----------
> MSVCRT.lib(MSVCR71.dll) : warning LNK4006: __stricmp already defined in LIBCMT.lib(stricmp.obj); second definition ignored
> MSVCRT.lib(MSVCR71.dll) : warning LNK4006: __strnicmp already defined in LIBCMT.lib(strnicmp.obj); second definition ignored
> MSVCRT.lib(MSVCR71.dll) : warning LNK4006: __strdup already defined in LIBCMT.lib(strdup.obj); second definition ignored
>    Creating library gdal_i.lib and object gdal_i.exp
> 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
> LIBCMT.lib(crt0.obj) : error LNK2019: unresolved external symbol _main referenced in function _mainCRTStartup
> gdal12.dll : fatal error LNK1120: 1 unresolved externals

Yvain and others,

I have done a test build of GDAL with /MT (and no /NODEFAULT:libcmt) and
it seems to work just fine for me.  I haven't tried to build MapServer
because it seems like it might be a big job compiling all the other
MapServer components (libcurl, gd, etc) with /MT.

I presume you are using /NODEFAULTLIB:libcmt with MapServer when you get
the missing function stuff?  Well, you can't ... the run runtime library
is needed!

I would imagine you are getting lots of conflicts when you let libcmt get
included because some of the other components (or possily mapserver itself)
is not being compiled with /MT.  You will have to dig through the makefiles
for those packages to deal with that problem.

For now I am going to assume folks issues with /MT and MapServer have nothing
to do with GDAL and are really just a failure to get all packages in the same
mode.  I will try to skim this thread but for if you need to get my attention
again do something direct (like email me directly with a new title).

Best regards,
-- 
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | Geospatial Programmer for Rent




More information about the mapserver-users mailing list