00000004.htm

来自「水木社区 embeded 版精华区 下载」· HTM 代码 · 共 43 行

HTM
43
字号
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title>使用WIN32环境下的gcc及GNU 5(转载)    turbolinux </title></head><body><center><h1>BBS 水木清华站∶精华区</h1></center><a name="top"></a>发信人:&nbsp;sunno&nbsp;(民工☆五月天高人浮躁),&nbsp;信区:&nbsp;Embedded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />标&nbsp;&nbsp;题:&nbsp;使用WIN32环境下的gcc及GNU&nbsp;5(转载)&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Tue&nbsp;Jul&nbsp;&nbsp;4&nbsp;04:30:05&nbsp;2000)&nbsp;<br />&nbsp;<br />(转载自笑书亭)&nbsp;<br />&nbsp;<br />三、使用GBU分析编译过程&nbsp;<br />为了分析的方便,不妨先用命令行&nbsp;gcc&nbsp;-c&nbsp;cprogram.c&nbsp;及gcc&nbsp;-c&nbsp;assem.s&nbsp;生成目标文&nbsp;<br />件cprogram.o&nbsp;<br />和assem.o,再用命令行gcc&nbsp;-o&nbsp;cprogram.exe&nbsp;cprogram.o&nbsp;assem.o&nbsp;生成可执行文件cp&nbsp;<br />rogram.exe。&nbsp;<br />1、用nm对obj文件进行符号分析&nbsp;<br />执行命令行&nbsp;nm&nbsp;-g&nbsp;cprgram.o可以得到cprogram.o的全局符号:&nbsp;<br />//offset&nbsp;type&nbsp;symbol&nbsp;<br />U&nbsp;___main&nbsp;<br />U&nbsp;_addition&nbsp;<br />00000030&nbsp;T&nbsp;_main&nbsp;<br />U&nbsp;_printf&nbsp;<br />U&nbsp;_scanf&nbsp;<br />类型U表示未定义的全局符号,链接时需重定位,T表示定义在代码段中的全局符号。从&nbsp;<br />中可以看出,编译cprogram.c时addition函数处理与对printf、scanf的处理一样,先标&nbsp;<br />记为外部引用,待链接时再重定位,当然这时它们的相对地址也无从知晓。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;<br />--&nbsp;<br />※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;162.105.16.253]&nbsp;<br /><a href="00000003.htm">上一篇</a><a href="javascript:history.go(-1)">返回上一页</a><a href="index.htm">回到目录</a><a href="#top">回到页首</a><a href="00000005.htm">下一篇</a></h1></center><center><h1>BBS 水木清华站∶精华区</h1></center></body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?