ar创建的库,nm能看,但是提示File format not recognized

xxcvxx 2013-07-18 02:04:08
如题,我发现ar文件在创建静态库的时候,如果包含了其他的.a/.o文件的话,nm命令查看就会报错(CentOS6.3, gcc4.4):
# cat lib.cpp

#include<stdio.h>
void f(int i){
printf("Number = %d\n",i);
}
# g++ -c lib.cpp
# ar rv lib.a lib.cpp
a - lib.cpp
# cat u1.cpp

void f(int i);
void u1(int i){
f(i);
}
# g++ -c u1.cpp
# ar rv libu1.a u1.o lib.a #这里我的输入有lib.a这个库文件
r - u1.o
r - lib.a
# nm libu1.a

u1.o:
U _Z1fi
00000000 T _Z2u1i
U __gxx_personality_v0
nm: lib.a: File format not recognized #这里报错了,为什么?

lib.o:
00000000 T _Z1fi
U __gxx_personality_v0
U printf
# ar rv libu1.a u1.o lib.o #改成.o文件输入
r - u1.o
r - lib.o
# nm libu1.a

u1.o:
U _Z1fi
00000000 T _Z2u1i
U __gxx_personality_v0
nm: lib.a: File format not recognized #怎么还报错呢?

lib.o:
00000000 T _Z1fi
U __gxx_personality_v0
U printf
这个所谓的File format not recognized到底是什么错误?
...全文
1378 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiuchangyong 2014-01-09
  • 打赏
  • 举报
回复
觉得是没有链接标准c++库的原因,你链接lstdc++试试
xxcvxx 2013-07-18
  • 打赏
  • 举报
回复
自己顶一下!

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧