5

我正在尝试链接我创建的静态库,但出现此错误。

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

我试图做,ranlib libmine.a但没有任何改变,它仍然给出同样的错误。我怎么解决这个问题?

4

1 回答 1

5

要查看存档中的符号,请使用 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”。

于 2012-07-05T14:51:04.800 回答