我必须使用共享库的调试版本(特别是通过apt-get install libpcap0.8-dbg
在Ubuntu中安装的libpcap)...我构建我的可执行文件并链接它并且所有工作都已完成(通过ldd
验证)...但是当我运行可执行文件时,我得到一个段错误...动态链接器无法加载库。使用objdump
我看到Dynamic section
为空:
$objdump -p libpcap.so.1.1.1
...
Dynamic section:
$
我认为在ELF共享对象中Dynamic section
的某些字段是强制性的......所以,为什么这部分是空的?也许有正确加载它的方法不同?
答案 0 :(得分:2)
老实说,我不使用Ubuntu,但AFAIK调试包不包含完整版本的库或二进制文件,只是从它们中删除了调试信息。这些只是由欧式带或类似工具切出的部分。你不应该与他们联系。事实上,根本不需要重新链接您的应用程序。你应该只是指示gdb,valgrind或其他调试信息使用者在实际调试之前读取它们,如果工具不能自己做,那就是全部。
答案 1 :(得分:0)
您可以尝试使用LD_LIBRARY_PATH=/usr/lib/debug/