我试着用来制作库
ar -r -c -s libtestlib.a *.o
如本教程http://matrixprogramming.com/Tools/CompileLink.html所示
但在与库链接时,会出现以下错误
g++ -o uni2asc uni2asc.o -L../Modules -ltestlib
../Modules/libtestlib.a: could not read symbols: Archive has no index; run ranlib to add one
collect2: ld returned 1 exit status
我也尝试了ranlib,但仍然出现错误..我正在使用ubuntu9.10,请给我一些解决方案
发布于 2010-05-05 03:15:01
您的存档命令看起来很好,您可以尝试以下操作。1)获取archive/static库中的对象文件
ar -t libtestlib.a
2)对于步骤1中的每个对象文件(例如foo.o)
file foo.o
这将告诉您目标文件的格式。如果目标文件是为不同的平台编译的,这将导致无法为存档构建索引。要纠正此问题,您需要重新编译这些文件。
3)对于步骤1中的每个目标文件,执行
nm foo.o
这将列出从文件中导出的符号。
发布于 2013-04-12 20:46:36
当我遇到这个错误时,我正在使用MinGW编译一个windows应用程序,所以我找到了内置的MinGW命令:
i686-w64-mingw32-ar
和
x86_64-w64-mingw32-ar
如果您在MinGW中遇到问题,请尝试使用这些代码而不是ar
。他们都帮我解决了这个问题。
发布于 2012-12-11 04:09:10
libtool
还有一个有用的选项:-export-symbols-regexp
。
https://stackoverflow.com/questions/2765240
复制相似问题