MapGuide Windows编译

1. 代码下载

     1)MapGuide代码下载地址:https://svn.osgeo.org/mapguide/trunk

     2)FDO代码下载地址:https://svn.osgeo.org/fdo/trunk

     3)CSMap代码下载地址:https://svn.osgeo.org/metacrs/csmap/trunk

2. 环境配置

在Windows下编译MapGuide需要安装如下软件:

1)JDK 1.8.0_74(jdk-8u74-windows-i586.exe),主要用于编译JavaAPI;

2)Flex 和Bison(cywin),主要用于编译PHP;

3)安装Perl(Strawberry),主要用于编译FDO;

4)安装.Net FrameWork 3.5,主要用于编译CsMap和配置ASP.NET网站;

5)安装Visual Studio 2015 update3

添加如下用户环境变量:

1)JAVA_HOME= C:\Program Files (x86)\Java\jdk1.8.0_74

2)PATH=%PATH%;C:\Strawberry\perl\bin;C:\cygwin\bin

3. 编译第三方库

MapGuide需要的第三方库大部分都包含在oem.sln解决方案中,对于较为复杂的第三方库(FDO、PHP、httpd)需要单独进行编译,具体编译步骤如下。

3.1 编译FDO

    编译FDO(Feature Data Object 地理空间数据访问)需要安装Perl和.Net Framework 3.5,并且需要将Perl的安装路径添加到Path环境变量中,配置完成后在MgDev\Oem\FDO目录下执行如下命令进行FDO的编译:

1) 编译32位Release版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86
setenvironment.bat
build_thirdparty.bat
build.bat
build.bat -a=install -o=../

2)编译32位Debug版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86
setenvironment.bat
build_thirdparty.bat -c=debug
build.bat -c=debug
build.bat -c=debug -a=install -o=../

3)编译64位Release版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86_amd64
setenvironment.bat x86_amd64
build_thirdparty.bat -p=x64
build.bat -p=x64
build.bat -p=x64 -a=install -o=../

4)编译64位Debug版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86_amd64
setenvironment.bat x86_amd64
build_thirdparty.bat -c=debug -p=x64
build.bat -c=debug -p=x64
build.bat -c=debug -p=x64 -a=install -o=../

3.2 编译PHP

编译PHP主要是用来编译生成MapGuide PHP API。编译PHP需要安装Bison,并将其添加在Path环境变量中。在编译PHP扩展时会依赖其他的开源库,依赖的这些库可以到https://windows.php.net/downloads/php-sdk/deps网站上下载,也可以下载相应的源代码进行编译,依赖的开源库主要有:freetype、curl、libexslt、libpng16、libxml、libxml2、libxslt、openssl等,在MgDev\Oem\目录创建phpdev\vc14\x86文件夹和phpdev\vc14\x64其中目录“phpdev\vc14\x86\deps\lib”和“phpdev\vc14\x64\deps\lib”用于放置依赖开源库的库文件,“phpdev\vc14\x86\deps\include”和“phpdev\vc14\x64\deps\include”用于放置依赖开源库的头文件。配置完成后在MgDev\Oem\php目录下执行如下命令进行PHP库及其扩展的编译,如:libcurl、libjpeg、libpng、libwebp、libxpm、libiconv、mcrypt、zlib、libxml2、libxslt、openssl、freetype

1) 编译32位Release版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86
buildconf.bat
cscript configure.js --with-extra-libs=..\phpdev\vc14\x86\deps\lib --with-extra-includes=..\phpdev\vc14\x86\deps\include --disable-all --enable-cli --enable-cgi --enable-bcmath --enable-calendar --enable-com-dotnet=shared --enable-ctype --with-dom --with-ereg --enable-filter --enable-ftp --enable-hash --with-iconv --enable-json --with-libxml --enable-mbstring=shared --with-mysqlnd --enable-odbc --enable-opcache --with-openssl=shared --enable-phar --enable-session --with-simplexml --enable-tokenizer --with-xsl=shared --without-t1lib --with-curl --enable-session --with-gd=shared --with-wddx --with-xml --enable-xmlreader --enable-xmlwriter --enable-zip --enable-zlib --with-mcrypt=static --without-analyzer
nmake

编译完成后生成的库在Release_TS目录下。

2)编译32位Debug版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86
buildconf.bat
cscript configure.js --with-extra-libs=..\phpdev\vc14\x86\deps\lib --with-extra-includes=..\phpdev\vc14\x86\deps\include --enable-debug --disable-all --enable-cli --enable-cgi --enable-bcmath --enable-calendar --enable-com-dotnet=shared --enable-ctype --with-dom --with-ereg --enable-filter --enable-ftp --enable-hash --with-iconv --enable-json --with-libxml --enable-mbstring=shared --with-mysqlnd --enable-odbc --enable-opcache --with-openssl=shared --enable-phar --enable-session --with-simplexml --enable-tokenizer --with-xsl=shared --without-t1lib --with-curl --enable-session --with-gd=shared --with-wddx --with-xml --enable-xmlreader --enable-xmlwriter --enable-zip --enable-zlib --with-mcrypt=static --without-analyzer
nmake

编译完成后生成的库在Debug_TS目录下。

3)编译64位Release版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86_amd64
buildconf.bat
cscript configure.js --with-extra-libs=..\phpdev\vc14\x64\deps\lib --with-extra-includes=..\phpdev\vc14\x64\deps\include --disable-all --enable-cli --enable-cgi --enable-bcmath --enable-calendar --enable-com-dotnet=shared --enable-ctype --with-dom --with-ereg --enable-filter --enable-ftp --enable-hash --with-iconv --enable-json --with-libxml --enable-mbstring=shared --with-mysqlnd --enable-odbc --enable-opcache --with-openssl=shared --enable-phar --enable-session --with-simplexml --enable-tokenizer --with-xsl=shared --without-t1lib --with-curl --enable-session --with-gd=shared --with-wddx --with-xml --enable-xmlreader --enable-xmlwriter --enable-zip --enable-zlib --with-mcrypt=static --without-analyzer
nmake

编译完成后生成的库在x64\Release_TS目录下。

4)编译64位Debug版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86_amd64
buildconf.bat
cscript configure.js --with-extra-libs=..\phpdev\vc14\x64\deps\lib --with-extra-includes=..\phpdev\vc14\x64\deps\include --enable-debug --disable-all --enable-cli --enable-cgi --enable-bcmath --enable-calendar --enable-com-dotnet=shared --enable-ctype --with-dom --with-ereg --enable-filter --enable-ftp --enable-hash --with-iconv --enable-json --with-libxml --enable-mbstring=shared --with-mysqlnd --enable-odbc --enable-opcache --with-openssl=shared --enable-phar --enable-session --with-simplexml --enable-tokenizer --with-xsl=shared --without-t1lib --with-curl --enable-session --with-gd=shared --with-wddx --with-xml --enable-xmlreader --enable-xmlwriter --enable-zip --enable-zlib --with-mcrypt=static --without-analyzer
nmake

编译完成后生成的库在x64\Debug_TS目录下。

3.3 编译OEM

MapGuide需要的第三方库大部分都包含在oem.sln解决方案中,编译此类第三方库仅需使用Visual Studio 2015打开解决方案进行编译即可,也可以通过执行MgDev目录下的批处理进行编译,如下所示:

1)编译32位Release版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86
setenvironment.bat
build.bat –w=oem

2)编译32位Debug版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86
setenvironment.bat debug
build.bat –w=oem

3)编译64位Release版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86_amd64
setenvironment.bat
build.bat –w=oem

4)编译64位Debug版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86_amd64
setenvironment.bat debug
build.bat –w=oem

4. 编译Mapguide

第三方库编译完成后在MgDev目录下执行如下命令进行MapGuide的编译:

1)编译32位Release版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86
setenvironment.bat
build.bat
build_desktop.bat

2)编译32位Debug版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86
setenvironment.bat debug
build.bat
build_desktop.bat

3)编译64位Release版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86_amd64
setenvironment64.bat
build.bat
build_desktop.bat

4)编译64位Debug版本:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86_amd64
setenvironment64.bat debug
build.bat
build_desktop.bat

5. 启动Mapguide服务

编译完成后可以启动MapGuide服务以检查MapGuide编译的正确性和完整性。编译完成后会在MgDev\Server\Bin\Debug和MgDev\Server\Bin\Release目录下生成“mgserver.exe”服务可执行文件,在启动MapGuide服务之前可以对服务的配置文件“serverconfig.ini”进行修改,可以在配置文件中修改服务的IP地址、端口号、各类服务的状态、各类服务的属性、日志配置等,配置完成后可以在MgDev\Server\Bin\Debug或MgDev\Server\Bin\Release目录下执行如下命令启动MapGuide服务:

mgserver.exe run

启动MapGuide服务过程中可能遇到的错误及解决方法如下所示:

1)FDO加载失败,导致此问题的原因可能是服务配置中“FdoPath”参数配置不正确,或者是缺少FDO动态库的相关依赖。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值