服务器下载网站源码分享下载 服务器上的源码怎么下载

老铁们,大家好,相信还有很多朋友对于服务器下载网站源码分享下载和服务器上的源码怎么下载的相关问题不太懂,没关系,今天就由我来为大家分享分享服务器下载网站源码分享下载以及服务器上的源码怎么下载的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

重要说明

gisinternals官网上提供的包也不能保证编译出来完全正确能用。

经实验release-1911-gdal-2-4-4-mapserver-7-4-3的x86版本在vs2017下编译出来的东西能正常使用

准备工作

下载并安装windows版的cmake工具,下载地址:https://cmake.org/,安装的时候记得勾选将路径添加到环境变量选项。安装VisualStudios2017,根据版本情况选择vs的版本,安装后会有几个命令行工具,使用“VS2017的开发人员命令提示符”vs工具可以微软官网下载,community社区版可免费使用,下载地址(要先登录微软官网):https://my.visualstudio.com/Downloads?q=Visual%20Studio%202017

需要下载的内容

gdal源代码:gdal244.zip

mapserver源代码:MapServer-rel-7-4-3.zip

开发包:release-1911-dev.zip

gdal和mapserver编译好的dll文件:release-1911-gdal-2-4-4-mapserver-7-4-3.zip

gdal和mapserver的依赖包:release-1911-gdal-2-4-4-mapserver-7-4-3-libs.zip

注意事项

release-1911-dev.zip中有一个lib文件夹,release-1911-gdal-2-4-4-mapserver-7-4-3-libs.zip中也有一个,实际证明两个文件夹是可以合并的,合并为小写的lib文件夹,合并时部分文件可能冲突,直接覆盖就行。

release-1911-dev.zip和release-1911-gdal-2-4-4-mapserver-7-4-3.zip的ECW5License.rtf、FileGDBLicense.rtf等文件会冲突,但是这些文件对于编译没有影响,所以直接覆盖合并就行。

比较新的版本中,regex-0.12这个包在解压出来的support文件夹里,老版本中在release-1911-dev.zip一级目录里。

cmake弄配置的时候要注意路径不要用反斜杠,以免被转义了不能正确识别。

指南里面的

4.Configure:\ncmake..-G&34;-DBUILD_SHARED_LIBS=1-DCMAKE_BUILD_TYPE=Release-Wno-dev\ncmake..-DCMAKE_PREFIX_PATH=C:\\dev\\work\\release-1700-gdal-2-1-2-mapserver-7-0-2;C:\\dev\\work\\release-1700-gdal-2-1-2-mapserver-7-0-2\\bin;C:\\dev\\work\\release-1700-gdal-2-1-2-mapserver-7-0-2\\lib;C:\\dev\\work\\release-1700-gdal-2-1-2-mapserver-7-0-2\\include\ncmake..-DREGEX_DIR=C:\\dev\\work\\release-1700-gdal-2-1-2-mapserver-7-0-2\\regex-0.12\ncmake..-DWITH_POSTGIS=0-DWITH_SOS=1-DWITH_KML=1\ncmake..-DWITH_CLIENT_WMS=1-DWITH_CLIENT_WFS=1\ncmake..-DWITH_THREAD_SAFETY=1-DWITH_FCGI=1\ncmake..-DWITH_CAIRO=1-DCAIRO_LIBRARY=C:\\dev\\work\\release-1700-gdal-2-1-2-mapserver-7-0-2\\lib\\cairo.lib\ncmake..-DWITH_SVGCAIRO=1-DSVGCAIRO_LIBRARY=C:\\dev\\work\\release-1700-gdal-2-1-2-mapserver-7-0-2\\lib\\libsvg-cairo.lib\ncmake..-DSVG_LIBRARY=1-DSVG_LIBRARY=C:\\dev\\work\\release-1700-gdal-2-1-2-mapserver-7-0-2\\lib\\libsvg.lib\n\n

实际使用时要去掉后面的cmake..,把命令拼成一条。并且需要添加-DWITH_PROTOBUFC=0,以保证在找不到protobuf的包里能正确编译。或者把PROTOBUFC这个包找到,并指定路径,它实际在include目录下有。

64位的编译好像有问题,不太清楚是官方给的代码包有问题还是编译64位的时候需要在命令行加什么参数,可能是需要采用另一个vs2017命令行工具编译。

release-1928-gdal-3-3-1-mapserver-7-6-4这个版本编译出来会一直提示无法解析map文件,所以推断此版本可能有问题。

包重复引入

在某些版本里面会报包重复引入的错误

把官方教程里面的-DWITH_SVGCAIRO=0,-DSVG_LIBRARY=0两个都设置为0即可。

mapserver调试模式启动

-DMS_ENABLE_CGI_CL_DEBUG_ARGS=1启动调试模式,不论编译了的exe文件哪里有问题都能直接提示错误原因,方便排查。

官方mapfile.xsl文件错误

虽然mapserver经常在更新,但是对xml模式的支持做得还不够好,官方代码包里的xmlmapfile/mapfile.xsl文件中少了个结束符,导致使用xml模式文件时报错,实际使用时应该加上。

mapfile.xsl默认读取地址

在命令行中使用xml模式地图配置文件时,mapfile.xsl有一个默认读取地址,它是从windows环境变量获取的,经测local.xml配置文件里面schemaLocation属性实际并不起作用。

根据mapserver官方要求,需要自己手动配置添加一个windows的环境变量MS_XMLMAPFILE_XSLT为D:\\software\\nginx-1.13.4\\html\\GISToolServer\\xmlmapfile\\mapfile.xsl

mvt类型支持

报错

CouldNOTfindProtobufC(missing:PROTOBUFC_COMPILERPROTOBUFC_INCLUDE_DIR)\nCMakeErroratCMakeLists.txt:73(message):\nPROTOBUFClibrary/component/dependencycouldnotbefound.\n\nHINTS:\n-disablePROTOBUFCsupportbyadding-DWITH_PROTOBUFC=0\n-addthePROTOBUFCinstalldirectorytotheCMAKE_PREFIX_PATHvariable(-DCMAKE_PREFIX_PATH=&34;\nCallStack(mostrecentcallfirst):\nCMakeLists.txt:293(report_optional_not_found)

如果要支持mvt类型则需要开启PROTOBUFC,设置-DWITH_PROTOBUFC=1

-DPROTOBUFC_INCLUDE_DIR是指protobuf-c的目录,通常在include目录下

-DPROTOBUFC_COMPILER是指protobufc的编译器地址,通常在bin目录下,叫:protoc.exe

最终编译脚本如下:

cmake..-G&34;-DMS_ENABLE_CGI_CL_DEBUG_ARGS=1-DBUILD_SHARED_LIBS=1-DCMAKE_BUILD_TYPE=Release-Wno-dev-DCMAKE_PREFIX_PATH=D:/mapserver-build/libxslt-1.1.26.win32;D:/mapserver-build/release-1911-gdal-2-4-4-mapserver-7-4-3;D:/mapserver-build/release-1911-gdal-2-4-4-mapserver-7-4-3/bin;D:/mapserver-build/release-1911-gdal-2-4-4-mapserver-7-4-3/lib;D:/mapserver-build/release-1911-gdal-2-4-4-mapserver-7-4-3/include-DREGEX_DIR=D:/mapserver-build/release-1911-gdal-2-4-4-mapserver-7-4-3/regex-0.12-DWITH_POSTGIS=0-DWITH_SOS=1-DWITH_KML=1-DWITH_PROTOBUFC=1-DPROTOBUFC_COMPILER=D:/mapserver-build/release-1911-gdal-2-4-4-mapserver-7-4-3/bin/protoc.exe-DPROTOBUFC_INCLUDE_DIR=D:/mapserver-build/release-1911-gdal-2-4-4-mapserver-7-4-3/include/protobuf-c-DWITH_XMLMAPFILE=1-DWITH_CLIENT_WMS=1-DWITH_CLIENT_WFS=1-DWITH_THREAD_SAFETY=1-DWITH_FCGI=1-DWITH_CAIRO=1-DCAIRO_LIBRARY=D:/mapserver-build/release-1911-gdal-2-4-4-mapserver-7-4-3/lib/cairo.lib-DWITH_SVGCAIRO=0-DSVGCAIRO_LIBRARY=D:/mapserver-build/release-1911-gdal-2-4-4-mapserver-7-4-3/lib/libsvg-cairo.lib-DSVG_LIBRARY=1-DSVG_LIBRARY=D:/mapserver-build/release-1911-gdal-2-4-4-mapserver-7-4-3/lib/libsvg.lib\n

编译成功了之后要把release-1928-gdal-3-3-1-mapserver-7-6-4.zip里的bin目录里的内容拷到build目录内,生成的mapserv.exe文件才不会缺少依赖。

要启用xmlmapfile首先要在配置文件启用相应功能:-DWITH_XMLMAPFILE=1文档中提到要先安装libxslt或libexsltlibxslt下载地址(libexslt只是libxslt的一个扩展):https://www.zlatkovic.com/projects/libxml/libxslt在-DCMAKE_PREFIX_PATH中的路径配置不需要到bin目录,直接到根目录就行(libxslt不需要安装,解压就可以使用)。编译完了之后同样需要把libexslt.dll和libxslt.dll两个文件拷备到mapserv.exe同级目录下,解决依赖问题。

最终测试命令:

mapserv.exe-nhQUERY_STRING=&34;>atest.png\n

local.xml文件内容:

\n<?xmlversion=&34;encoding=&34;?>\n<Mapname=&34;xmlns=&34;status=&34;xmlns:xsi=&34;xsi:schemaLocation=&34;version=&34;>\n<sizex=&34;y=&34;></size>\n<extent>-180.0-90.0180.090.0</extent>\n<units>DD</units>\n<shapePath>./data</shapePath>\n<imageColorred=&34;green=&34;blue=&34;></imageColor>\n<OutputFormatname=&34;>\n<driver>AGG/PNG</driver>\n<extension>png</extension>\n<formatOption>GAMMA=0.75</formatOption>\n<imageMode>RGBA</imageMode>\n<mimeType>image/png</mimeType>\n<transparent>ON</transparent>\n</OutputFormat>\n<Layername=&34;type=&34;status=&34;>\n<connectionType>OGR</connectionType>\n<connection>demo.db</connection>\n<data>ocean</data>\n<Classname=&34;status=&34;>\n<Style>\n<colorred=&34;green=&34;blue=&34;></color>\n</Style>\n</Class>\n</Layer>\n</Map>\n\n

参考文档:

https://github.com/MapServer/MapServer/blob/main/README.WIN32

文章到此结束,如果本次分享的服务器下载网站源码分享下载和服务器上的源码怎么下载的问题解决了您的问题,那么我们由衷的感到高兴!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平