关于libm.a的问题,现解释如下:
1. 正常情况下是如此结果:
$ ar -t /usr/lib/x86_64-linux-gnu/libm.a
ar: /usr/lib/x86_64-linux-gnu/libm.a: File format not recognized
2. 一看是格式不识别,那就看看是什么格式用 $ file /usr/lib/x86_64-linux-gnu/libm.a
/usr/lib/x86_64-linux-gnu/libm.a: ASCII text
3.一看是文本文件,然后再用 gedit /usr/lib/x86_64-linux-gnu/libm.a查看内容
如下:
/* GNU ld script
*/
OUTPUT_FORMAT(elf64-x86-64)
GROUP ( /usr/lib/x86_64-linux-gnu/libm-2.27.a /usr/lib/x86_64-linux-gnu/libmvec.a )
4. 原来确实是一个文本文件,原来真正的库文件是/usr/lib/x86_64-linux-gnu/libm-2.27.a与/usr/lib/x86_64-linux-gnu/libmvec.a
5.然后用 ar查看
ar -t /usr/lib/x86_64-linux-gnu/libm-2.27.a
ar -t /usr/lib/x86_64-linux-gnu/libmvec.a
果真都是正确显示结果
s_lib_version.o
s_matherr.o
s_signgam.o
fclrexcpt.o
fgetexcptflg.o
fraiseexcpt.o
fsetexcptflg.o
ftestexcept.o
fegetround.o