2012.7.3

今天学了Mware Workstation里的基本的一些操作,查找路径,绝对路径,相对路径,静态库,动态库,建立目录,删除

在终端里的一些操作,插入模式,底行模式,命令模式,剪切,复制,黏贴,保存,退出

写代码不能顶格写,按tab键

gcc 编译 生产a.out文件,然后ls,然后./a.out ,查看结果

还讲了有关于文件的权限的一些内容,查看隐藏文件

编译器GCC     预处理:头文件的展开,宏替换。

下午写了 加减乘除,主函数

还学了设置断点,单步执行

写makefile 文件

但是这些在当天没有完成好

真心的觉得,要记得的东西真多。

刚接触,脑袋大了。但是这些应该是嵌入式的入门中最简单的吧。。。。敲打

老师布置作业:

-f 使用档案文件或设备,这个选项通常是必选的。

-z gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。  

-x 从档案文件中释放文件。

小写的-v作用是让tar命令输出更多的提示信息,比方说,加了-v后,你在打包的时候就会输出被打包的文件的名字。

大写的-V的用法是

-V label-name

作用是给打好的包加上一个label,比方说

tar -V ppp -cf my.tar test/

就把test目录打包到my.tar,同时这个打包文件的labelppp

-p 恢复字段到它们的原始方式,忽略现有的用户权限屏蔽位(umask)。 setuidsetgid 和 tacky 位许可权也恢复给拥有 root 用户权限的用户。这个标志恢复文件到其原始方式,但不恢复目录到其原始方式。
-s 如果 tar 命令未能使用 -s 标志成功尝试链接(常规链接)两个文件,请试着创建符号链接。


-p--same-permissions 用原来的文件权限还原文件。

-P--absolute-names

文件名使用绝对名称,不移除文件名称前的"/"号。


链接的概念:

重定位是将符号引用与符号定义进行链接的过程。因此链接是处理可重定位文件,把它们的各种符号引用和符号定义转换为可执行文件中的合适信息(一般是虚拟内存地址)的过程。链接又分为静态链接和动态链接,前者是程序开发阶段程序员用ld(gcc实际上在后台调用了ld)静态链接器手动链接的过程,而动态链接则是程序运行期间系统调用动态链接器(ld-linux.so)自动链接的过程。比如,如果链接到可执行文件中的是静态连接库libmyprintf.a,那么. rodata节区在链接后需要被重定位到一个绝对的虚拟内存地址,以便程序运行时能够正确访问该节区中的字符串信息。而对于puts,因为它是动态连接库libc.so中定义的函数,所以会在程序运行时通过动态符号链接找出puts函数在内存中的地址,以便程序调用该函数。在这里主要讨论静态链接过程,动态链接过程见《动态符号链接的细节》。

         静态链接过程主要是把可重定位文件依次读入,分析各个文件的文件头,进而依次读入各个文件的节区,并计算各个节区的虚拟内存位置对一些需要重定位的符号进行处理,设定它们的虚拟内存地址等,并最终产生一个可执行文件或者是动态链接库。这个链接过程是通过ld来完成的,ld在链接时使用了一个链接脚本(linker script),该链接脚本处理链接的具体细节。由于静态符号链接过程非常复杂,特别是计算符号地址的过程,考虑到时间关系,相关细节请参考ELF手册[6]。这里主要介绍可重定位文件中的节区(节区表描述的)和可执行文件中段(程序头描述的)的对应关系以及gcc编译时采用的一些默认链接选项。

窗体顶端

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值