【C语言】【unix c】如何将多个源文件拼接成一个可执行文件?
2017-08-10 22:44
260 查看
如何将多个源文件拼接成一个可执行文件? (在tmath文件夹下的程序下做实验) 1、先将上面实验文件都编译成.o文件 【nm 二进制文件名】命令可以察看二进制文件中的符号(函数的名字,全局变量的名字 ,静态局部变量的名字) 2、先对单独的编译好的二进制文件察看链接情况:(T代表有这些函数的代码,u代表没有,只是留有位置无法执行) 察看:t_add.o文件 命令: tarena@ubuntu:~/day/day23/tmath$ nm t_add.o 结果: 00000000 T t_add 0000000e T t_sub 分析: 由结果可以看出文件中的两个函数名显示出来,前面用T标示,表示这两个函数是有源程序的,即已实现,有程序了 察看:主函数文件 命令: tarena@ubuntu:~/day/day23/tmath$ nm t_math.o 结果: 00000000 T main U printf U t_add U t_div U t_mul U t_sub 分析: 由结果可以看出在主函数的测试文件中需要的函数已经包含进来了,但是除了主函数,其他函数均处于未实现,即没有源程序只是留有位置的状态(U) 察看:链接后的文件: 命令: tarena@ubuntu:~/day/day23/tmath$ nm a.out 结果: (省略n行) 08048404 T main U printf@@GLIBC_2.0 080483e4 T t_add 08048504 T t_div 080484f8 T t_mul 080483f2 T t_sub 分析: 由结果可以看出出来printf函数均变为了T说明各个函数的源程序均已链接成功 知识点补充:链接分为动态链接,静态链接 静态是在编译时就将程序载入,例如程序员编写的 动态是在程序运行时需要用到该程序了才会载入,例如标准输出输入函数
相关文章推荐
- 【C语言】【unix c】如何察看可执行文件依赖哪些动态库
- 如何创建一个java 的可执行文件吗?
- 如何将多个文件捆绑成一个可执行文件
- 如何把一个bin文件捆绑到一个可执行文件exe中?
- 如何将多个文件捆绑成一个可执行文件
- 技巧和诀窍: 如何上传一个.SQL文件到远程主机并且执行它来部署一个SQL数据库
- 如何上传一个.SQL文件到远程主机并且执行它来部署一个SQL数据库
- 如何将多个文件捆绑成一个可执行文件
- 如何判断Unix系统的一个库文件是32位还是64位的
- 如何执行一个mysql的sql脚本文件
- 手把手教你如何将一个PPT转为EXE执行文件
- 如何将多个文件捆绑成一个可执行文件
- 如何在 db2 管理器中执行一个包含 sql 语句的脚本文件
- 如何批量将一个文件夹下所有的SQL文件执行,更新到数据库
- 技巧和诀窍: 如何上传一个.SQL文件到远程主机并且执行它来部署一个SQL数据库
- 技巧和诀窍: 如何上传一个.SQL文件到远程主机并且执行它来部署一个SQL数据库
- 如何将多个文件捆绑成一个可执行文件
- 技巧和诀窍: 如何上传一个.SQL文件到远程主机并且执行它来部署一个SQL数据库
- 我做了一个EXE文件,想在SQL Server上定时执行这个EXE文件,如何实现
- 如何判断一个文件是否是win32可执行文件