C语言编译产生的Map文件是什么?

C语言编译产生的Map文件是什么?,第1张

MAP文件主要有两种生成方法,一种是由系统自动生成,默认文件名为所建立的项目名(如XXX为项目名)加上map后缀xxxmap,另一种在CMD文件中指定生成MAP文件, *** 作方法为在MEMORY指令前面加上"-m abcmap",文件名可以任意。
MAP文件是CCS软件编译后产生的有关DSP用到所有程序、数据及IO空间的一种映射文件。

一、手工修改:
这种方式槛太高,首先需要了解mapfile文件的结构,需要熟读Mapfile宝典《Mapfile
Reference》,搞清楚每个参数的详细含义,一般人没有个把星期是搞不懂的。
二、其它软件输出:
目前部分开源软件支持输出MapServer格式的文件,像QGIS
,MapWinGIS等,ArcGIS也有相关的插件可以输出mapfile,但它们输出的文件往往会丢失很多信息,像符号等很容易丢失,而且容易出错,在MapServer中无法直接使用,还需要打开做进一步修改,也就是说还需要了解Mapfile的文档结构。
我一直在想为什么MapServer就没有配置工具呢?其实,关于MapServer的工程文件配置界面,已经有其他人做过相关的开发,有几个这方面的开源项目,都是BS架构开发的,个人感觉比较好的是maplab,做的比较深入,功能也相对比较丰富,但不知道什么原因,这些项目到目前为止都停止开发了,maplab最后的版本可能是maplab-<xml:namespace
prefix = st1
/>,比较老了,已经不支持现在的MapServer5,,可能是维护起来比较困难,大家都放弃开发了。
工作中我们也有这方面的需求,开发一个mapfile生成工具,这个光荣的任务是由我来承担的,由于我以前是做组件开发的,相对来说更熟悉CS架构,并不打算用BS的方式来开发。MapServer可以生成的C#类库,本来想用它在C#中直接做用户界面,但不知道什么原因,在ASPNET项目中用C#调用这些类库是没有问题的,但在Windows应用程序项目中便问题多多(难道是封装出来的类库只能再BS架构中用?)。时间紧迫没精力去研究太深,后来我索性用自己最擅长的技术了,管他麻不麻烦,先实现了再说。具体实现就是将MapServer的C类库重新封装成了一系列COM接口,然后再在C#中调用自己封装的接口来做界面,很快地便实现了一个小工具。有人可能会问,为什么不直接用VC做界面,没什么原因,就是我不喜欢,太麻烦,C#开发界面多方便,呵呵。
总体来说我对这个小工具还是很满意的,功能也不多,就像是一个小型的GIS软件,由地图显示、图层列表、工具条和菜单几个部分组成,可以直接打开MapServer的mapfile文件并显示,如果打开map文件出错可以显示详细的错误信息,也可以新建一个mapfile文件,直接向mapfile中添加图层,对其配置符号,设置标注,可见比例尺等。对打开的mapfile文件可以进行缩放等各种浏览 *** 作,mapfile的各种属性配置基本都可以修改并实时的体现在工具的显示界面中,修改到自己满意了之后,可以将mapfile文件输出,直接在MapServer中调用。
甚至可以加上属性查询、空间量算等功能,所有MapServer能实现的功能都可以做到这个小工具中,当然这些都是后话了,工作中不需要这些所以也就没有实现。
完成之后,发现这就是一个小型的桌面GIS系统,虽然开始开发的时候感觉这么做走了弯路,现在想想这也是一条可取之路,开源软件的更新频率很高,如果MapServer的底层库函数发生了变化,也只需要将它的C类库重新编译一次就可以继续使用了,即使MapServer扩展了功能模块,我们也只需要再增加相关的接口便可以。维护起来相对比较简单,软件的持续更新也就有了保障。

map是一种图像数据调用文件。
是程序的全局符号、源文件和代码行号信息的唯一的文本表示方法。专用地图文件格式。可能某两个软件都用。map作为扩展名,但是格式非常可能是完全不同的。一般游戏中。map比较多。还有一些电子地图也用这个作为扩展名。想打开特定的map文件,就要找一下有没有该软件的地图文件查看器。
不过这在CCS编译器只是其中一种情况,在VC还有其他编译环境中也会用到map文件,主要的功能就是标志程序,数据,IO在编译时和空间地址之间的映射关系。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12837036.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存