如何判断linux 文件(或lib)是由uclibc还是glibc编译出来的?

工作中使用的编译环境有2套编译器,一个是glibc,一个是uclibc。

有些项目使用的glibc编译的lib,和使用uclibc编译的工程,在一起就会出现reference的编译错误如下:

那和如何来判断一个文件是由哪个编译器编译的呢?

试了几个方法,file 不行, objdump 也不行。 可以的命令如下:

strings -a libpcap.so.1.9.1 | grep -i uclibc

可以看到,使用这个命令,如果这个lib是由 uclibc 编译的,会类似grep出一些字串。

而如果这个lib是由 glibc 编译出来的,就不会grep任何的信息

灵活运用strings命令可以完成其他的功能,之前看的帖子给的例子是看编译器版本的

strings -a program_name | grep -i gcc

我改动之后可以完成我的需求。

猜你喜欢

转载自blog.csdn.net/scarlettsp/article/details/132925050