基于Linux(Ubuntu 11.10)
在我的电脑崩溃之前,我的电脑上有一个二进制文件: ./program ,没有源代码给我。 这个文件执行得很好。 当我的硬盘驱动器出现故障时,我开始全新安装,并尝试在同一台计算机上运行此二进制文件。 它现在失败:
bash: ./program: cannot execute binary file
在文件上运行ldd会提供更多信息:
/usr/bin/ldd: line 161: /lib64/ld-linux-x86-64.so.2: cannot execute binary file not a dynamic executable
如何列出c / c ++静态库的依赖关系?
编译共享库到程序中?
无法链接应用程序与mudflap
共享对象的开销
./program: linux-vdso.so.1 => (0x00007fffdad5e000) libz.so.1 => /lib64/libz.so.1 (0x00000039a1400000) libstdc++.so.6 => /usr/local/gcc/gcc-4.5.1/lib64/libstdc++.so.6 (0x00007fce82c7a000) libm.so.6 => /lib64/libm.so.6 (0x00007fce829f6000) libgcc_s.so.1 => /usr/local/gcc/gcc-4.5.1/lib64/libgcc_s.so.1 (0x00007fce827e1000) libc.so.6 => /lib64/libc.so.6 (0x00007fce82452000) /lib64/ld-linux-x86-64.so.2 (0x00007fce82f7f000)
有没有一种方法可以告诉我需要什么,这样我可以让程序再次运行? 我知道崩溃之前安装的任何东西都是用apt-get来完成的,所以我不认为它需要任何不在存储库中的独特的东西。
本地化的问题?
我承认这个具体问题对我来说可能是特别的,但问题仍然是一般意义上的问题。 只给出一个二进制文件,你如何确定它需要运行的库?
NUMA机器上共享库的瓶颈
/ usr / bin / ld:client:隐藏符号`__dso_handle'
共享对象中的模板单体基类
从客户端应用程序debugging到dynamic库
一些关于GCC链接器search顺序的问题
在ldd工作的计算机上用程序运行file作为参数。 它会告诉你,如果二进制是32或64位。 你可能必须在运行之前安装32位的兼容库,在debian / ubuntu上这叫做ia32-libs 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。