根据LSB扫描程序,我的二进制文件与特定版本的Linux不兼容,因为它使用GBLICXX_3.4.9符号。但是当我尝试在该版本上运行二进制文件时,一切似乎都运行正常......
如果该发行版缺少包含所需符号的运行时库,那么二进制文件是否可以在Linux发行版上启动?
答案 0 :(得分:3)
我不知道我是否已经理解了这个问题,但据我所知,即使你用现代的glibc编译你的程序也不一定意味着你将无法执行旧版本。下一个Linux命令:
objdump -T "your exe or lib file" | grep GLIB
将显示程序符号属于哪个版本的glibc。
有关详细信息,Ulrich Drepper撰写了一篇名为How to write shared libraries的论文,解释了很多关于符号如何在linux中工作的内容,不仅适用于共享库,还适用于可执行文件
答案 1 :(得分:3)
我怀疑他们会警告您,您正在使用符号,即使它们在您的测试系统上可用,也可能无法在所有符合LSB的系统上使用。