工作中使用的编译环境有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
我改动之后可以完成我的需求。