我面临的问题与古斯塔沃在以下Link中提出的问题完全相同。此外,我已尝试在该链接和其他标签中发布的所有解决方案(例如将库名从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
有人可以告诉我我错过了什么吗?我无法解决此问题
答案 0 :(得分:1)
我认为我找到了解决方案,感谢此Link中发布的答案。所以基本上总结一下解决方案,当我指定库(-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
,正如编译器所建议的,这解决了我所有的问题!