关于编译的时候生成MAP文件

【0. MSDN中关于参数的说明】

/MAP    (生成 Map文件)

这个选项告诉连接器要生成一个map文件。

命令行干吗的备注
/MAP生成MAP文件默认生生成的map文件是程序名+.map
/MAP:filename指定Map文件名不用默认文件名,用你指定的文件名

map文件包含了要连接的程序的一下信息:

  • 模块名
  • 程序代码中的各个代码group的名, 包括这些group的 start address (as section:offset), length, group name, and class
  • public symbols, 包括 address (as section:offset), symbol name, flat address, and .OBJ file where the symbol is defined
  • entry point (as section:offset)

/MAPINFO    (指定map文件中要包含的信息)

【语法】

/MAPINFO:{EXPORTS|FIXUPS|LINES}

指定了/MAP选项之后才能用这个。这个是告诉连接器把什么信息包含到map文件中。

  • EXPORTS 包含输出函数,如果是dll的话用得上
  • FIXUPS 基址重定位信息
  • LINES 代码的行信息

-----------------------------------------总结&应用-------------------------------------------------

【1. MAP文件生成过程】

例如,代码是test.c。对于VC 6.0的编译器来说,命令行编译过程如下(不用IDE):

1.cl /c /Zd test.c

2.link /map /mapinfo:lines test.obj

3.最后就会生成:test.exe和test.map

【2. 使用MAP文件调试的例子在这里】

http://www.cnblogs.com/gaotaozhaolei/archive/2008/02/02/1062155.html


原文链接:http://ihacku.blog.163.com/blog/static/163025145201032694723537/

MSDN资源:http://msdn.microsoft.com/zh-cn/library/k7xkk3e2(v=vs.80).aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值