libraries – 查找已编译C程序的依赖项

我在Ubuntu 13.10(32位)中使用Qt Creator编写并编译了一个C程序.我试图在新安装的Ubuntu 13.10(64位)中运行已编译的程序.但它没有运行.

我认为问题在于依赖性.我怎样才能找到(=知道名称和版本)必要的依赖项?

解决方法:

这有点粗糙,但我认为ldd命令适用于您的情况.

ldd用于列出可执行文件的动态加载库依赖项.如果ldd无法找到所需的库,则表示库“未找到”.

举个例子,如果我用我发现的旧gqrx二进制文件运行ldd,我得到以下输出:

linux-gate.so.1 (0xb7fff000)
libgnuradio-audio.so.3.6.1 => not found
libgnuradio-osmosdr.so.0 => not found
libgnuradio-core.so.3.6.1 => not found
libgruel.so.3.6.1 => not found
libfftw3f.so.3 => /usr/lib/i386-linux-gnu/libfftw3f.so.3 (0x41b5d000)
libusb-1.0.so.0 => /lib/i386-linux-gnu/libusb-1.0.so.0 (0x422ee000)
libQtGui.so.4 => /usr/lib/i386-linux-gnu/libQtGui.so.4 (0x42e47000)
libQtCore.so.4 => /usr/lib/i386-linux-gnu/libQtCore.so.4 (0xb7cde000)
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0x411dc000)

如您所见,我已经升级了libgnuradio库并删除了旧版本. ldd将那些丢失的库列为“未找到”.

祝好运!

上一篇:图解SQL inner join、left join、right join、full outer join、union、union all的区别


下一篇:DNS解析在php chroot中