ranlib 和静态库

pyt*_*nic 5 c linux gcc makefile x86-64

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

libmine.a: could not read symbols: Archive has no index; run ranlib to add one
Run Code Online (Sandbox Code Playgroud)

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

dad*_*nck 5

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

nm -s libmine.a
Run Code Online (Sandbox Code Playgroud)

<输出>

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

00000000 T _sub1
00000019 T _sub2

你在“ar”中使用了什么开关来制作静态库?我通常使用“ar -r”作为

ar -r libmine.a mine.o yours.o
Run Code Online (Sandbox Code Playgroud)

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

ar -s -r libmine.a mine.o yours.o
Run Code Online (Sandbox Code Playgroud)

另外,请确保路径中没有其他“libmine.a”文件,或者为您的“libmine.a”指定显式路径。链接器可能正在选择不同的“libmine.a”。