2

我面临的情况与 Gustavo 在以下链接中提出的问题完全相同。另外,我已经尝试了该链接和其他标签中发布的所有解决方案(例如将库名称从 opus.a 更改为 libopus.a,将“\”更改为“/”等等),但这些都没有解决我的问题. 通过打开库文件的属性,会显示以下内容:

路径: /demo/opusfile/libopusfile.a

类型:文件(静态库)

位置:U:\data\Jag\eclipse\wrksp\demo\opusfile\libopusfile.a

Mingw显示的错误信息如下:

15:56:57 **** Incremental Build of configuration Debug for project demo ****
Info: Internal Builder is used for build
gcc -o demo.exe "src\\demo.o" -lU:/data/Jag/eclipse/wrksp/demo/opusfile/libopusfile.a 
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lU:/data/Jag/eclipse/wrksp/demo/opusfile/libopusfile.a
collect2.exe: error: ld returned 1 exit status

collect2.exe: error: ld returned 1 exit status

有人可以让我知道我错过了什么吗?我无法解决此问题

4

1 回答 1

1

我想我找到了解决方案,这要归功于此链接中发布的答案。所以基本上总结解决方案,当我指定库(-l 参数)时,我必须删除“lib”前缀、“.a”后缀和库路径。库路径必须在 -L 参数中指定。这解决了上述问题,但给 Mingw 带来了另一个障碍:

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

我在命令提示符下执行了“ranlib”命令

cmd_path> ranlib libopusfile.dll.a 

,正如编译器所建议的那样,这解决了我所有的问题!

于 2014-09-12T09:52:34.413 回答