ranlib和静态库

时间:2012-07-05 14:18:54

标签: c linux gcc makefile x86-64

我正在尝试链接我创建的静态库,但是我收到了这个错误。

libmine.a: could not read symbols: Archive has no index; run ranlib to add one

我尝试ranlib libmine.a但没有改变,它仍然会出现同样的错误。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

要查看存档中的符号,请使用nm。

nm -s libmine.a

<输出>

子程序的入口点应标记为“T”,如

00000000 T _sub1
00000019 T _sub2

您在“ar”中使用了哪些开关来制作静态库?我通常在

中使用“ar -r”
ar -r libmine.a mine.o yours.o

如果您仍有问题,请添加“-s”选项

ar -s -r libmine.a mine.o yours.o

此外,请确保路径中没有其他“libmine.a”文件,或者显示“libmine.a”的显式路径。链接器可能会选择不同的“libmine.a”。