[Mapserver-users] MapServer Windows external symbol problem

Howard Butler hobu at iastate.edu
Mon Jun 21 16:12:07 EDT 2004


Pericles,

Here is what I set my LDFLAGS in Makefile.vc after pointing to the PHP regex:
LDFLAGS =       /NODEFAULTLIB:msvcrt /NODEFAULTLIB:libcd 
/NODEFAULTLIB:libcmt /DEBUG

I'm speculating that it is caused by some code being built as debug while 
other is "release" code.  VC++ is kind of stupid when you try to mix the 
two together and says that those symbols have already been defined

Howard

At 03:08 PM 6/21/2004, Pericles S. Nacionales wrote:
>Howard, Assefa,
>
>I got around this regex problem by compiling against the PHP regex
>library.
>
>But then I ran into system library conflicts during linking.  I tried
>changing the /NODEFAULTLIB:<library> flag but it didn't help.  Any help
>with this would be greatly appreciated.
>
>Here's the messages I'm getting:
>         link /dll /debug  mapbits.obj maphash.obj mapshape.obj
>mapxbase.obj  mapparser.obj maplexer.obj mapindex.obj maptree.obj
>mapsearch.obj mapstring.obj mapsymbol.obj mapfile.obj  maplegend.obj
>maputil.obj mapscale.obj mapquery.obj  maplabel.obj maperror.obj
>mapprimitive.obj mapproject.obj mapraster.obj cgiutil.obj mapsde.obj
>mapogr.obj maptime.obj  maptemplate.obj mappostgis.obj maplayer.obj
>mapresample.obj  mapwms.obj mapwmslayer.obj mapgml.obj
>maporaclespatial.obj  mapprojhack.obj mapdraw.obj mapgd.obj
>mapoutput.obj mapswf.obj  mapgdal.obj mapwfs.obj mapwfslayer.obj
>mapows.obj maphttp.obj  mappdf.obj mapcontext.obj mapdrawgdal.obj
>mapjoin.obj mapgraticule.obj  mapmygis.obj mapimagemap.obj mapcopy.obj
>mapogcfilter.obj mapogcsld.obj mapthread.obj epplib.obj
>d:/projects/mapserver/php-4.3.6\regex\regcomp.obj
>d:/projects/mapserver/php-4.3.6\regex\regerror.obj
>d:/projects/mapserver/php-4.3.6\regex\regexec.obj
>d:/projects/mapserver/php-4.3.6\regex\regfree.obj
>d:/projects/mapserver/gd-2.0.15gif/gd.lib
>d:/projects/mapserver/gdal-1.2.0b/frmts/jpeg/libjpeg/libjpeg.lib
>d:/projects/mapserver\libpng-1.2.5/libpng.lib
>d:/projects/mapserver/zlib-1.2.1/zlib.lib
>d:/projects/mapserver/freetype-2.1.4/objs/freetype214.lib
>d:/projects/mapserver/gdal-1.2.0b/frmts/jpeg/libjpeg/libjpeg.lib
>d:\projects\mapserver\proj-4.4.8/src/proj.lib
>d:\projects\mapserver\gdal-1.2.0b/ogr/ogrsf_frmts/ogrsf_frmts.lib
>d:\projects\mapserver\gdal-1.2.0b/ogr/ogrsf_frmts/ogrsf_frmts_sup.lib
>d:\projects\mapserver\gdal-1.2.0b/ogr/ogr.lib
>d:\projects\mapserver\gdal-1.2.0b/ogr/../port/cpl.lib
>d:\projects\mapserver\gdal-1.2.0b/gdal_i.lib
>d:/projects/mapserver/curl-7.11.1/lib/libcurl.lib
>d:/projects/mapserver/ming-0.2a/src/libming.lib
>d:/projects/mapserver/pdflib-4.0.3/pdflib/pdflib.lib  "C:\Program
>Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\Lib\WSOCK32.LIB"
>d:\projects\mapserver\postgresql-7.3.4/src/interfaces/libpq/release/libpqdll.lib 
>c:\apps\xerces-c1_7_0-win32/lib/xerces-c_1.lib 
>C:\Progra~1\Earthr~1\ECWSDK~1\lib\NCSEcw.lib 
>C:\Progra~1\Earthr~1\ECWSDK~1\lib\NCSEcw
>C.lib  C:\Progra~1\Earthr~1\ECWSDK~1\lib\NCSUtil.lib   "C:\Program
>Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Lib\odbc32.lib"
>/out:libmap.dll /implib:mapserver_i.lib
>Microsoft (R) Incremental Linker Version 7.10.3077
>Copyright (C) Microsoft Corporation.  All rights reserved.
>
>LIBCD.lib(dbgheap.obj) : error LNK2005: _malloc already defined in
>LIBC.lib(malloc.obj)
>LIBCD.lib(dbgheap.obj) : error LNK2005: __nh_malloc already defined in
>LIBC.lib(malloc.obj)
>LIBCD.lib(dbgheap.obj) : error LNK2005: __heap_alloc already defined in
>LIBC.lib(malloc.obj)
>LIBCD.lib(dbgheap.obj) : error LNK2005: _calloc already defined in
>LIBC.lib(calloc.obj)
>LIBCD.lib(dbgheap.obj) : error LNK2005: _realloc already defined in
>LIBC.lib(realloc.obj)
>LIBCD.lib(dbgheap.obj) : error LNK2005: _free already defined in
>LIBC.lib(free.obj)
>LIBCD.lib(dbgheap.obj) : error LNK2005: __msize already defined in
>LIBC.lib(msize.obj)
>LIBCD.lib(sbheap.obj) : error LNK2005: __get_sbh_threshold already
>defined in LIBC.lib(sbheap.obj)
>LIBCD.lib(sbheap.obj) : error LNK2005: __set_sbh_threshold already
>defined in LIBC.lib(sbheap.obj)
>LIBCD.lib(sbheap.obj) : error LNK2005: ___sbh_heap_init already defined
>in LIBC.lib(sbheap.obj)
>LIBCD.lib(sbheap.obj) : error LNK2005: ___sbh_find_block already defined
>in LIBC.lib(sbheap.obj)
>LIBCD.lib(sbheap.obj) : error LNK2005: ___sbh_free_block already defined
>in LIBC.lib(sbheap.obj)
>LIBCD.lib(sbheap.obj) : error LNK2005: ___sbh_alloc_block already
>defined in LIBC.lib(sbheap.obj)
>LIBCD.lib(sbheap.obj) : error LNK2005: ___sbh_alloc_new_region already
>defined in LIBC.lib(sbheap.obj)
>LIBCD.lib(sbheap.obj) : error LNK2005: ___sbh_alloc_new_group already
>defined in LIBC.lib(sbheap.obj)
>LIBCD.lib(sbheap.obj) : error LNK2005: ___sbh_resize_block already
>defined in LIBC.lib(sbheap.obj)
>LIBCD.lib(sbheap.obj) : error LNK2005: ___sbh_heapmin already defined in
>LIBC.lib(sbheap.obj)
>LIBCD.lib(sbheap.obj) : error LNK2005: ___sbh_heap_check already defined
>in LIBC.lib(sbheap.obj)
>LIBCD.lib(dbgheap.obj) : warning LNK4006: _malloc already defined in
>LIBC.lib(malloc.obj); second definition ignored
>LIBCD.lib(dbgheap.obj) : warning LNK4006: __nh_malloc already defined in
>LIBC.lib(malloc.obj); second definition ignored
>LIBCD.lib(dbgheap.obj) : warning LNK4006: __heap_alloc already defined
>in LIBC.lib(malloc.obj); second definition ignored
>LIBCD.lib(dbgheap.obj) : warning LNK4006: _calloc already defined in
>LIBC.lib(calloc.obj); second definition ignored
>LIBCD.lib(dbgheap.obj) : warning LNK4006: _realloc already defined in
>LIBC.lib(realloc.obj); second definition ignored
>LIBCD.lib(dbgheap.obj) : warning LNK4006: _free already defined in
>LIBC.lib(free.obj); second definition ignored
>LIBCD.lib(dbgheap.obj) : warning LNK4006: __msize already defined in
>LIBC.lib(msize.obj); second definition ignored
>LIBCD.lib(sbheap.obj) : warning LNK4006: __get_sbh_threshold already
>defined in LIBC.lib(sbheap.obj); second definition ignored
>LIBCD.lib(sbheap.obj) : warning LNK4006: __set_sbh_threshold already
>defined in LIBC.lib(sbheap.obj); second definition ignored
>LIBCD.lib(sbheap.obj) : warning LNK4006: ___sbh_heap_init already
>defined in LIBC.lib(sbheap.obj); second definition ignored
>LIBCD.lib(sbheap.obj) : warning LNK4006: ___sbh_find_block already
>defined in LIBC.lib(sbheap.obj); second definition ignored
>LIBCD.lib(sbheap.obj) : warning LNK4006: ___sbh_free_block already
>defined in LIBC.lib(sbheap.obj); second definition ignored
>LIBCD.lib(sbheap.obj) : warning LNK4006: ___sbh_alloc_block already
>defined in LIBC.lib(sbheap.obj); second definition ignored
>LIBCD.lib(sbheap.obj) : warning LNK4006: ___sbh_alloc_new_region already
>defined in LIBC.lib(sbheap.obj); second definition ignored
>LIBCD.lib(sbheap.obj) : warning LNK4006: ___sbh_alloc_new_group already
>defined in LIBC.lib(sbheap.obj); second definition ignored
>LIBCD.lib(sbheap.obj) : warning LNK4006: ___sbh_resize_block already
>defined in LIBC.lib(sbheap.obj); second definition ignored
>LIBCD.lib(sbheap.obj) : warning LNK4006: ___sbh_heapmin already defined
>in LIBC.lib(sbheap.obj); second definition ignored
>LIBCD.lib(sbheap.obj) : warning LNK4006: ___sbh_heap_check already
>defined in LIBC.lib(sbheap.obj); second definition ignored
>    Creating library mapserver_i.lib and object mapserver_i.exp
>LINK : warning LNK4098: defaultlib 'LIBCD' conflicts with use of other
>libs; use /NODEFAULTLIB:library
>libmap.dll : fatal error LNK1169: one or more multiply defined symbols
>found
>NMAKE : fatal error U1077: 'link' : return code '0x491'
>Stop.
>
>
>On Mon, 2004-06-21 at 14:17, Howard Butler wrote:
> > Assefa,
> >
> > I am trying to compile Windows MapServer, but I am having trouble getting
> > regex to behave when it comes time to link.  Apparently, many others have
> > had trouble as well
> > 
> <http://www.google.com/search?q=regex.obj+:+error+LNK2001:+unresolved+external+symbol+_printchar&hl=en&lr=&ie=UTF-8&c2coff=1&start=10&sa=N&filter=0>.
> >
> > Here is the link error:
> > regex.obj : error LNK2001: unresolved external symbol _printchar
> >
> > I have tried every permutation of putting that symbol in the header, 
> making
> > sure it is extern'ed properly (in both the C file and the header), but 
> I am
> > having no luck.  I grepped through my VC++ include files and my cygwin
> > include files for that function prototype (printchar), but I cannot 
> find it
> > anywhere.
> >
> > If you have any ideas of other things I might try, I'd greatly 
> appreciate it.
> >
> > Thanks
> >
> > Howard
> >
> > --------------------------------------------------------
> > Howard Butler
> > Department of Statistics
> > Center for Survey Statistics and Methodology
> > Iowa State University
> > 212 Snedecor Hall
> > Ames, IA 50011
> > --------------------------------------------------------
> > http://hobu.biz
> > --------------------------------------------------------
> >
> > _______________________________________________
> > Mapserver-users mailing list
> > Mapserver-users at lists.gis.umn.edu
> > http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
>--
>"He's no geek.His tan's too good." -Benjamin Choate




More information about the mapserver-users mailing list