Error when compiling mapwmslayer.c when building MapServer on Windows 2000 Pro

Bob Bruce covariance at SHAW.CA
Tue Feb 15 01:07:11 EST 2005


I am building mapserver so that I can build PHP MapScript and am getting
some errors that I haven't seen before. I was getting some errors and an
earlier note from the listserv said to enable the WMS Client and libcurl so
I downloaded the libcurl source and configured the nmake.opt file to see
it. Can someone tell me how to fix these compile errors? Thanks.

      Bob Bruce

Part of the way through the build it produced the following error messages:

Error building MapServer for PHP MapScript on Windows 2000 Pro

        cl /nologo /MD /W3 /DDEBUG -Ic:/projects/gdwin32     -
Ic:\projects\proj-4.4.9/src -IC:\
php-5.0.3/regex -DPHP_NO_ALIASES    -IC:/Projects/curl-
7.13.0/include           -DHAVE_STRING_H
 -DREGEX_MALLOC -DNEED_STRCASECMP -DNEED_STRNCASECMP -DNEED_STRLCAT   -
DWIN32 -D_WIN32   -DUSE_
PROJ -DUSE_PROJ_API_H   -DUSE_GD_PNG -DUSE_GD_JPEG -DUSE_GD_WBMP -
DUSE_GD_GIF -DGD_HAS_GDIMAGEG
IFPTR -DUSE_GD_FT -DGD_HAS_GETBITMAPFONT    -DUSE_WMS_LYR  -
DIGNORE_MISSING_DATA  -DENABLE_STDE
RR_DEBUG           -DUSE_GD_ANTIALIAS     /c
mapwmslayer.c /Fomapwmslayer.obj
mapwmslayer.c
mapwmslayer.c(272) : warning C4013: 'msOWSLookupMetadata' undefined;
assuming extern returning
int
mapwmslayer.c(273) : warning C4047: '=' : 'const char *' differs in levels
of indirection from
'int '

   (this message repeated for different lines in the source file)

mapwmslayer.c(432) : warning C4013: 'msSLDGenerateSLD' undefined; assuming
extern returning int

mapwmslayer.c(432) : warning C4047: '=' : 'char *' differs in levels of
indirection from 'int '

mapwmslayer.c(514) : warning C4013: 'msOWSParseVersionString' undefined;
assuming extern return
ing int
mapwmslayer.c(517) : error C2065: 'OWS_1_0_8' : undeclared identifier
mapwmslayer.c(517) : error C2051: case expression not constant
mapwmslayer.c(518) : error C2065: 'OWS_1_1_0' : undeclared identifier
mapwmslayer.c(520) : error C2065: 'OWS_1_0_0' : undeclared identifier
mapwmslayer.c(520) : error C2051: case expression not constant
mapwmslayer.c(521) : error C2065: 'OWS_1_0_7' : undeclared identifier
mapwmslayer.c(521) : error C2051: case expression not constant
mapwmslayer.c(522) : error C2051: case expression not constant
mapwmslayer.c(523) : error C2065: 'OWS_1_1_1' : undeclared identifier
mapwmslayer.c(523) : error C2051: case expression not constant

NMAKE : fatal error U1077: 'cl' : return code '0x2'
Stop.

My nmake.opt file is configured as follows:

#
# nmake.opt - MapServer 4.x configuration for MSVC++
#
# This VC++ configuration is used in building MAPSERVER.LIB, MAPSERV.EXE,
# and the other MapServer command-line programs.
#
# To use the makefile:
#  - Open a DOS prompt window
#  - Run the VCVARS32.BAT script to initialize the VC++ environment
variables
#  - Start the build with:  nmake /f makefile.vc
#
# $Id: nmake.opt,v 1.19 2004/12/09 20:18:22 frank Exp $
#
# Contents:
#   Section I:   Mapserver Options (you may want to edit)
#   Section II:  Support Libraries (you must edit)
#   Section III: Debug Flags (no need to edit)
#   Section IV:  Variable Setup (should not need to edit)
#   Section V:   UMN GIS System Setup (should not need to edit)
#   Section VI:  Collect compiler flags
#
########################################################################
# Section I: Mapserver Options
########################################################################

# Uncomment the following to link mapserv.exe withh dll
DLLBUILD=1

# Set the following to point to the current directory.
MS_BASE =  C:\projects\mapserver_dev

# Optmization and related compile flags.

# Optimized, with using MSVCRT.
OPTFLAGS = /nologo /MD $(WARNING_LEVEL) $(DEBUG)

#LDFLAGS = /NODEFAULTLIB:msvcrt /NODEFAULTLIB:libcd /DEBUG

# Debug with MSVCRT
#OPTFLAGS = /nologo /Zi /MD $(WARNING_LEVEL) $(DEBUG)

# Optimized, with LIBC.
#OPTFLAGS = /nologo $(WARNING_LEVEL) $(DEBUG)

# Input raster format options:
#
# The lite version of mapserver 4.x supports only GIF, PNG and JPEG data
for
# input. If you wish to support many geospatial raster formats for input
# you will need the GDAL support library from http://www.gdal.org/.
# Once built, enable the GDAL flag, and point GDAL_DIR to the directory
# where GDAL was built.
#GDAL=-DUSE_GDAL
#GDAL_DIR=c:\projects\gdal-1.2.5

#
# Input vector format options
#
# The lite version of Mapserver 4.x only suports ESRI shapefiles for input.
#
# The OGR library (part of GDAL) supports a variety of geospatial vector
# formats including mapinfo, Arc/Info binary coverages, S-57, SDTS,
# Microstation DGN (pre-v7), TIGER, UK .NTF.  It also include support for
# treating non-spatial tablular data from ODBC, CSV, mysql, Oracle Spatial,
# and PostgreSQL as spatial table with use of the VRT (virtual) driver.
#
# NOTE: Both -DUSE_OGR and -DUSE_GDAL need to be defined if you want to
# use GDAL/OGR for both raster and vector support, but GDAL_DIR needs only
# be defined once.
#
#OGR=-DUSE_OGR
#GDAL_DIR=c:\projects\gdal-1.2.5

# JPEG Input:
# JPEG input for raster layers is also available through GDAL, If you wish
# to build support for JPEG without GDAL, uncomment the following flag
# and provide the full path to the jpeg support library project directory.
# See http://www.ijg.org/ for support library.
#JPEG=-DUSE_JPEG
#JPEG_DIR=c:/projects/libjpeg

# Output format options:
# If you wish to allow JPEG output maps, uncomment the following flag.
# If not using a GD build with an internal copy of libjpeg, you will
# also need to uncomment JPEG_DIR and point to it; however, with BGD.DLL
# that is not necessary.
OUTPUT_JPEG=-DUSE_GD_JPEG
#JPEG_DIR=c:/projects/libjpeg

# If you wish to allow PNG output maps, uncomment the following flag.
# If not using a GD build with an internal copy of libpng, you will
# also need to uncomment PNG_DIR and ZLIB_DIR and point to it; however,
with
# BGD.DLL that is not necessary.
# See http://www.libpng.org/pub/png/libpng.html for support library.
# See http://www.gzip.org/zlib/ for support library.
OUTPUT_PNG=-DUSE_GD_PNG

#PNG_DIR=c:/projects/libpng-1.2.7
#ZLIB_DIR=c:/projects/zlib-1.2.1

# If you wish to allow Windows BMP output maps, uncomment the following
flag.
OUTPUT_WBMP=-DUSE_GD_WBMP

# If you wish to have FLASH output, uncomment the following flag and provide
# the full path to the MING support library project directory.
# See http://ming.sourceforge.net/ for support library.
#MING=-DUSE_MING_FLASH
#MING_DIR=c:/projects/ming-0.3beta1


# If you wish to have PDF output, uncomment the following flag and provide
the
# full path to the PDF support library project directory.
# See http://www.pdflib.com/ for support library.
#PDF=-DUSE_PDF
#PDF_DIR=c:/projects/pdflib-6.0.0


# Annotation fonts.
#
# If you wish to annotate your maps with true type fonts unccomment the
# following flag. Provide the full path to the FreeType 2.x external
# support library, unless it is provided within your GD build as is the
# case with BGD.DLL.
# See http://www.freetype.org for support library.
ANNOTATION_FT=-DUSE_GD_FT
#FT_DIR=c:/projects/freetype-2.1.3


# Direct connectivity to Postgresql PostGIS.
#
# To turn on direct connectivity to Postgresql PostGIS uncomment the
following
# flag and set the full path name to the project directory for the
# Postgresql native Win32 client library.
# See http://www.postgresql.org for support library.
#POSTGIS =-DUSE_POSTGIS
#POSTGIS_DIR =c:/projects/libpq

#Orcale
#ORACLE_DIR = c:\Oracle\Ora81
#ORACLE=-DUSE_ORACLESPATIAL

# Direct connectivity to ArcSDE.
#
# To turn on direct connectivity to ArcSDE uncomment the following
# flag and set the full path name to the project directory for ArcSDE.
# Since ESRI includes the version number in the name of their libraries
# you may need to change that number in Section III of this configuration
# file.
# See http://www.esri.com/software/arcgis/arcinfo/arcsde/index.html for
# support library
#
# To include experimental SDE_RASTER support, include "-DUSE_SDERASTER" in
the
# SDE_OPT.
#
#SDE_OPT=-DUSE_SDE -DWIN32
#SDE_DIR=c:/my_path_to/arcsde

# EPPL7 Support
#
# This activates ERDAS as well. It is included in the distribution.
# Probably the best raster alternative if
# you've got EPPL7 laying around. See http://www.lmic.state.mn.us/ for
# more information.
# Uncomment out the following flag and set the full path name to the
# epplib.obj file.
#EPPL=-DUSE_EPPL
#EPPL_OBJ=c:/my_path/epplib.obj

# If you want to ignore missing datafile errors uncomment the following
# line. This is especially useful with large tiled datasets that may not
# have complete data for each tile.
IGNORE_MISSING_DATA=-DIGNORE_MISSING_DATA

#NEED_NONBLOCKING_STDERR=-DNEED_NONBLOCKING_STDERR
ENABLE_STDERR_DEBUG=-DENABLE_STDERR_DEBUG

# If you want antialiasing (note that It requires gd2)
USE_GD_ANTIALIAS=-DUSE_GD_ANTIALIAS

# Use this flag to compile with WMS Server support.
# To find out more about the OpenGIS Web Map Server Specification go to
# http://www.opengis.org/
#WMS=-DUSE_WMS_SVR

# Use this flag to compile with WMS Client support. WMS Client support
# allows you to pull layers from other OGIS WMS servers on the interent and
# incorporate them into your map.
# To find out more about the OpenGIS Web Map Server Specification go to
# http://www.opengis.org/
# you need the libcurl library from http://curl.haxx.se/library/c/
# Set the full path to the curl project directory.
# You may also need to the full path to the windows socket library.
WMSCLIENT= -DUSE_WMS_LYR

#CURL_DIR=c:/projects/curl-7.10.2
#CURL_DIR=c:/projects/curl-7.10.7
CURL_DIR=C:/Projects/curl-7.13.0
#WINSOCK_LIB = "WSOCK32.LIB"
WINSOCK_LIB = "C:\Program Files\Microsoft Visual Studio\VC98
\Lib\WSOCK32.LIB"

# Use -DUSE_WFS_SVR to compile with WFS server support, requires OGR and
PROJ4
#WFS=-DUSE_WFS_SVR

# Use -DUSE_WFS_LYR to compile with WFS client support, requires libcurl
#WFSCLIENT= -DUSE_WFS_LYR

# Use -DUSE_WCS_SVR to compile with WCS server support, requires GDAL.
#WCS=-DUSE_WCS_SVR

#libiconv support is used for to support double bytes (see bug 911).
#uncomment the following to build with libiconv support.
#ICONV=-DUSE_ICONV
#

# Reprojecting.
# If you would like mapserver to be able to reproject data from one
# geographic projection to another, uncomment the following flag
# Proj.4 distribution (cartographic projection routines).  PROJ.4 is
# also required for all OGC services (WMS, WFS, and WCS).
#
# For PROJ_DIR use full path to Proj.4 distribution
PROJ=-DUSE_PROJ -DUSE_PROJ_API_H
PROJ_DIR=c:\projects\proj-4.4.9

# PHP Mapscript.
# If you plan to build PHP mapscript uncomment the following flag and
# set the full path to the PHP project directory
PHP4=1
#PHP_DIR=c:\projects\php-4.3.4
PHP_DIR=C:\php-5.0.3

# Apparently these aren't as commonplace. Edit the
# following line to reflect the missing functions on your platform.
#
#STRINGS=-DNEED_STRCASECMP -DNEED_STRNCASECMP -DNEED_STRDUP
STRINGS=-DNEED_STRCASECMP -DNEED_STRNCASECMP -DNEED_STRLCAT


########################################################################
# Section II: External Support Libraries
########################################################################
# You will need to set the paths to various support library projects
# that you have compiled.
########################################################################

# GD Library.
#
# Mapserver 4.x only supports GD 2.x and greater.
# Sorry no more GIF support.  If you need GIF support you will
# need to run Mapserver 3.6.x with GD 1.2.
# GD is a required support library for MapServer 4.x.
# Enter the full path to your GD 2.x project directory

# Note : A patched version of GD that supports GIF, JPEG, PNG and WBMP can
be
# downloaded from http://www.rime.com.au/gd/. If you are using this library,
#you should uncomment the following line
OUTPUT_GIF=-DUSE_GD_GIF -DGD_HAS_GDIMAGEGIFPTR

GD_DIR=c:/projects/gdwin32
GD_LIB=$(GD_DIR)/bgd.lib

#if the GD version you are using is above GD 2.0.22, uncomment the
following flag to
#have a proper support for bitmap fonts (see Bug 969 for more details)
GD_HAS_GETBITMAPFONT=-DGD_HAS_GETBITMAPFONT

# REGEX Libary
#
# VC++ does not include the REGEX library... so we must provide our one.
# The following definitions will try to build GNU regex-0.12 located in the
# regex-0.12 sub-directory.
# If it was not included in the source distribution, then you can get it
from:
#    ftp://ftp.gnu.org/pub/gnu/regex/regex-0.12.tar.gz
# Provide the full path to the REGEX project directory
# You do not need this library if you are compiling for PHP mapscript.
# In that case the PHP regex library will be used instead
!IFNDEF PHP4
REGEX_DIR=c:\projects\regex-0.12
!ENDIF

# FastCGI Support
#
# Uncomment, and update accordingly.
#FCGIDIR=C:\projects\fcgi-2.4.0
#FCGILIB=$(FCGIDIR)\libfcgi\Debug\libfcgi.lib
#FCGIINC=-I$(FCGIDIR)\include
#FCGIDEF=-DUSE_FASTCGI

########################################################################
# Section III: Debug flags
########################################################################
# Should not need to be updated.
########################################################################
# DEBUG Build flags
# Set the DEBUG flag if you wish to make a debug build
DEBUG=/DDEBUG
# Set the Warning level for the compiler (defaults to W1)
WARNING_LEVEL=/W3
# Set the linker debug option
LDEBUG=/debug


########################################################################
# Section IV: Variable Setup
########################################################################
# Should not need to be updated.
########################################################################

MS_LIB =  mapserver.lib
MS_LIB_DLL  = mapserver_i.lib

# Proj.4 include and library
!IFDEF PROJ_DIR
PROJ_INC=-I$(PROJ_DIR)/src
PROJ_LIB=$(PROJ_DIR)/src/proj_i.lib
!ENDIF

# CURL include and library
!IFDEF WMSCLIENT
CURL_INC = -I$(CURL_DIR)/include
CURL_LIB = $(CURL_DIR)/lib/libcurl.lib
!ENDIF

# Set the jpeg library
!IFDEF JPEG_DIR
JPEG_LIB=$(JPEG_DIR)/libjpeg.lib
!ENDIF

# Set the png support libaries
!IFDEF PNG_DIR
PNG_LIB=$(PNG_DIR)/libpng.lib $(ZLIB_DIR)/zlib.lib
!ENDIF

# Set the FreeType library
!IFDEF FT_DIR
#FT_LIB=$(FT_DIR)/objs/freetype211.lib
FT_LIB=$(FT_DIR)/objs/freetype211ST_D.lib
!ENDIF

# GD include and library
GD_INC= -I$(GD_DIR)
GD_LIBS= $(GD_DIR)/bgd.lib  $(JPEG_LIB) $(PNG_LIB) $(FT_LIB)
GD= $(OUTPUT_PNG) $(OUTPUT_JPEG) $(OUTPUT_WBMP) $(OUTPUT_GIF)
$(ANNOTATION_FT) $(GD_HAS_GETBITMAPFONT)

# Tiff library on input
!IFDEF TIFF
TIFF_INC=-I$(TIFF_DIR)/libtiff
TIFF_LIB=$(TIFF_DIR)/libtiff/libtiff.lib
!ENDIF

# JPEG library on input
!IFDEF JPEG_DIR
JPEG_LIB=$(JPEG_DIR)/libjpeg.lib
!ENDIF

# Setup GDAL includes and libraries
!IFDEF GDAL
GDAL_INC = -I$(GDAL_DIR)/gcore -I$(GDAL_DIR)/alg -I$(GDAL_DIR)/ogr -
I$(GDAL_DIR)/port
GDAL_LIB = $(GDAL_DIR)/gdal_i.lib
!ENDIF

# Setup OGR includes and libraries
!IFDEF OGR
OGR_INC = -I$(GDAL_DIR)/ogr/ogrsf_frmts -I$(GDAL_DIR)/ogr -I$(GDAL_DIR)/port
OGR_LIB = $(GDAL_DIR)/gdal_i.lib
!ENDIF

# Setup ESRI SDE support.
!IFDEF SDE_OPT
SDE_INC=-I$(SDE_DIR)/include
SDE_LIB=$(SDE_DIR)/lib/sde80.lib $(SDE_DIR)/lib/sg80.lib
$(SDE_DIR)/lib/pe80.lib
!ENDIF

# Setup REGEX object and includes
!IFNDEF PHP4
REGEX_OBJ=$(REGEX_DIR)\regex.obj
REGEX_INC=-I$(REGEX_DIR)
!ELSE
REGEX_OBJ=$(PHP_DIR)\regex\regcomp.obj $(PHP_DIR)\regex\regerror.obj \
          $(PHP_DIR)\regex\regexec.obj $(PHP_DIR)\regex\regfree.obj
REGEX_INC=-I$(PHP_DIR)/regex -DPHP_NO_ALIASES
!ENDIF
#
# REGEX needs some special flags... here they are for VC++ 6.0
#
REGEX_OPT=-DHAVE_STRING_H -DREGEX_MALLOC

# Setup Postgesql PostGIS includes and libs
# Note that the Postgresql includes are not used in the compilation of
# PHP/MapScript.  The reason is that there is a name conflict between the
# regex/regex.h files used in PHP and Postgresql.  This is not a real issue
# since they are two completely different interfaces.  The issue arrises
when
# the php_regex.h trys to include regex/regex.h and gets the wrong one from
# postgresql.  Therefore we do not give it that opertunity by not providing
the
# include path.
!IFDEF POSTGIS
!IFNDEF PHP_BUILD_CALL
#POSTGIS_INC=-I$(POSTGIS_DIR)/src/interfaces/libpq -
I$(POSTGIS_DIR)/src/include
POSTGIS_INC=-I$(POSTGIS_DIR)/interfaces/libpq -I$(POSTGIS_DIR)/include
!ENDIF
#POSTGIS_LIB=$(POSTGIS_DIR)/src/interfaces/libpq/release/libpqdll.lib
POSTGIS_LIB=$(POSTGIS_DIR)/interfaces/libpq/libpqdll.lib

POSTGIS_OBJ=mappostgis.obj
!ENDIF

# Setup FLASH includes and libs
!IFDEF MING
MING_INC=-I$(MING_DIR)/src -I$(MING_DIR)
MING_LIB= $(MING_DIR)/src/libming.lib
#MING_VERSION=-DMING_VERSION_03
!ENDIF

# Setup PDF includes and libs
!IFDEF PDF
PDF_LIB=$(PDF_DIR)/pdflib/pdflib.lib
PDF_INC=-I$(PDF_DIR)/pdflib
!ENDIF

#Oracle support
!IFDEF ORACLE
ORACLE_INC=-I$(ORACLE_DIR)/oci/include
ORACLE_LIB=$(ORACLE_DIR)/oci/lib/msvc/oci.lib
!ENDIF

#libiconv support
!IFDEF ICONV
ICONV_LIB=c:\usr\lib\iconv.lib
ICONV_INC= -Ic:\usr\include
!ENDIF


########################################################################
# Section V: UMN GIS System Support
########################################################################
# Should not need to be updated.
########################################################################
#
# UofMN GIS/Image Processing Extension (very experimental)
#
#EGIS=-DUSE_EGIS

!IFDEF EGIS
ERR_DIR=c:/my_path_to/errLog
ERR_OBJ=$(ERR_DIR)/errLog.o
ERR_INC=-I$(ERR_DIR)
ERR_LIB=-L$(ERR_DIR) -lerrLog

IMGGEN_DIR=c:/my_path_to/imgSrc
IMGGEN_OBJ=$(IMGGEN_DIR)/imgLib.o
IMGGEN_INC=-I$(IMGGEN_DIR)
IMGGEN_LIB=-L$(IMGGEN_DIR) -limgGEN
!ENDIF

########################################################################
# Section VI: Collect compiler flags
########################################################################
# Should not need to be updated.
########################################################################
EXTERNAL_LIBS=$(GD_LIBS) $(TIFF_LIB) $(JPEG_LIB) \
     $(PROJ_LIB) $(OGR_LIB) $(GDAL_LIB)\
     $(CURL_LIB)  $(MING_LIB) $(PDF_LIB) \
     $(WINSOCK_LIB) $(POSTGIS_LIB) $(IMGGEN_LIB) $(ERR_LIB) \
     $(ORACLE_LIB) $(SDE_LIB) $(ICONV_LIB) $(FCGILIB)

LIBS=$(MS_LIB) $(EXTERNAL_LIBS)
LIBS_DLL=$(MS_LIB_DLL) $(EXTERNAL_LIBS)

INCLUDES=$(GD_INC) $(TIFF_INC) $(JPEG_INC)  \
         $(PROJ_INC) $(REGEX_INC) $(GDAL_INC) $(OGR_INC) \
         $(CURL_INC) $(MING_INC) $(PDF_INC) $(POSTGIS_INC) \
         $(IMGGEN_INC) $(ERR_INC) $(ORACLE_INC) $(SDE_INC)\
         $(ICONV_INC) $(FCGIINC)


MS_DEFS = $(REGEX_OPT) $(STRINGS) $(POSTGIS)  -DWIN32 -D_WIN32 \
          $(EPPL) $(PROJ) $(TIFF) $(JPEG) $(GD) $(OGR) $(WMS) \
          $(WMSCLIENT) $(MING) $(IGNORE_MISSING_DATA)
$(NEED_NONBLOCKING_STDERR) $(ENABLE_STDERR_DEBUG) \
          $(GDAL) $(FCGIDEF) \
          $(WFS) $(WFSCLIENT) $(WCS) $(PDF) $(EGIS) \
        $(USE_GD_ANTIALIAS) $(ORACLE) $(MING_VERSION) $(SDE_OPT) $(ICONV)

MS_CFLAGS=$(INCLUDES) $(MS_DEFS)



More information about the mapserver-users mailing list