我正在尝试链接我创建的静态库,但是我收到了这个错误。
libmine.a: could not read symbols: Archive has no index; run ranlib to add one
我尝试ranlib libmine.a
但没有改变,它仍然会出现同样的错误。我该如何解决这个问题?
答案 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”。