linux的可执行文件中的几个待解决的问题
1、动态链接库的原理?也就是他是怎么开始运行的
这个问题基本解决,
事实上,动态链接库产生的原因就是很多程序有相同的代码,为了防止代码的重复出现而占满硬盘,所以创造了动态链接库,这样相同的代码只有一份在硬盘,在使用的时候调入内存,大家共用,节省磁盘空间
动态链接库的本质就是写好的一些函数,给你调用,但是你看不到函数的实现,却能调用它,这就是加载器的魅力
2、怎么生成.so格式的动态链接库
这个总结挺好的:(在《LINUX系统中动态链接库的创建与使用》一文中看到)一是如何让动态链接库为LINUX系统所共享,二是编译连接程序时如何做.让动态链接库为系统所共享,主要是用ldconfig管理命令,维护好系统共享库的缓存文件/etc/ld.so.cache.编译连接时如何做?注意连接上所用的动态链接库就可以了
《LINUX系统中动态链接库的创建与使用》原创地址,找的我好辛苦啊亲
1、http://blog.chinaunix.net/uid-23480159-id-2421732.html
2、http://blog.chinaunix.net/uid-23480159-id-2421733.html
使用方法这里也讲的比较清晰:http://fanqiang.chinaunix.net/system/linux/2006-05-08/4126.shtml
3、一个可执行程序执行的时候需要有哪些动态链接库
查看,readelf -a test (test为可执行文件),可查看相当多的信息
4、查看可执行文件的相关信息
ldd <可执行文件名> 查看可执行文件链接了哪些 系统动态链接库
nm <可执行文件名> 查看可执行文件里面有哪些符号
strip <可执行文件名> 去除符号表可以给可执行文件瘦身
如果我们想从可执行程序里面提取出来一点什么文本信息的话,还可以用strings命令
strings <可执行文件名>