我试着用图书馆制作
ar -r -c -s libtestlib.a *.o
Run Code Online (Sandbox Code Playgroud)
如本教程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
Run Code Online (Sandbox Code Playgroud)
我尝试使用ranlib但仍然出现错误..我正在使用ubuntu9.10请为我建议一些解决方案
Jas*_*eet 23
您的存档命令看起来很好,您可以尝试以下方法.1)获取存档/静态库中的目标文件
ar -t libtestlib.a
Run Code Online (Sandbox Code Playgroud)
2)对于步骤1中的每个目标文件(例如foo.o)
file foo.o
Run Code Online (Sandbox Code Playgroud)
这将告诉您目标文件的格式.如果为另一个平台编译了目标文件,则会导致无法为存档构建索引.要更正此问题,您需要重新编译这些文件.
3)对于步骤1中的每个目标文件,执行
nm foo.o
Run Code Online (Sandbox Code Playgroud)
这将列出从文件导出的符号.
小智 15
当我收到错误时,我正在使用MinGW编译Windows应用程序,所以我找到了内置的MinGW命令:
i686-w64-mingw32-ar
Run Code Online (Sandbox Code Playgroud)
和
x86_64-w64-mingw32-ar
Run Code Online (Sandbox Code Playgroud)
ar如果您在MinGW中遇到问题,请尝试使用它们.他们都为我解决了问题的问题.
| 归档时间: |
|
| 查看次数: |
55493 次 |
| 最近记录: |