当前位置: 技术问答>linux和unix
linux下有没有办法查看编译的可执行文件包含哪些obj和静态库?
来源: 互联网 发布时间:2017-03-21
本文导语: 如题。我有个linux下面编译的可执行文件无法启动,经比较,比以前正常的文件小了2M。 怀疑是不是link里面漏掉了东西。 请问有什么办法查看这个文件包含了哪些 obj文件和静态链接库么? 谢谢! | ...
如题。我有个linux下面编译的可执行文件无法启动,经比较,比以前正常的文件小了2M。
怀疑是不是link里面漏掉了东西。
请问有什么办法查看这个文件包含了哪些 obj文件和静态链接库么?
谢谢!
怀疑是不是link里面漏掉了东西。
请问有什么办法查看这个文件包含了哪些 obj文件和静态链接库么?
谢谢!
|
只能查看可执行文件链接的动态库,静态库和obj是不可能查到的。因为他已经成为了一部分.
无法启动是什么意思?究竟提示什么错误??shell启动时会提示什么?
g++或者gcc编译时加上-g参数。
然后gdb调试。
无法启动是什么意思?究竟提示什么错误??shell启动时会提示什么?
g++或者gcc编译时加上-g参数。
然后gdb调试。
|
比以前小了2M看看是不是链接时,由以前的静态链接,变为了动态链接。或者程序代码本来就已经减小了很多。
|
"U" The symbol is undefined.
|
1、如果少了某些符号的定义,连接是不过去的,
2、静态库和obj其实一样,.o被打包成.a,就这点区别
如果好查看,那只能看make file 的依赖关系和连接到那个库了,
我觉得这都不是上上策,编译时加-g,用gdb调式多方便。
2、静态库和obj其实一样,.o被打包成.a,就这点区别
如果好查看,那只能看make file 的依赖关系和连接到那个库了,
我觉得这都不是上上策,编译时加-g,用gdb调式多方便。
|
ldd a.out
查看依赖的库文件(动态库和静态库都可以看到)
查看依赖的库文件(动态库和静态库都可以看到)
|
Undefined是符号未定义,也就是程序找不到这个符号,即程序找不到该变量或者该函数。
只能说明你的程序有问题,不是依赖动态库的问题,
你ldd a.out看一下你的程序依赖那些库
只能说明你的程序有问题,不是依赖动态库的问题,
你ldd a.out看一下你的程序依赖那些库