我正在尝试在ffmpeg
开发环境中使用cygwin
库。我下载了shared build from here(64位)。 bin
个文件夹包含dlls
但不包含.a
或.dll.a
个文件。链接,这样做:
$ gcc encoding_mp3.o -L/cygdrive/c/Users/Desktop/webserver/cygnus/lib/w32api -L/cygdrive/c/Users/Desktop/webserver/cygnus/ffmpeg/ffmpeg_shared/bin -lavcodec-54 -lm -luser32 -lpthread -o encoding_mp3
导致以下错误:
/cygdrive/c/Users/Desktop/webserver/cygnus/ffmpeg/ffmpeg_shared/bin/avcodec-54.dll: file not recognized: File format not recognized collect2: ld returned 1 exit status
我的问题:
1.共享版本中的bin/
文件夹仅包含avcodec-54.dll
。有没有办法将dll
转换为dll.a
或.a
?
我哪里错了?
如果需要源代码,请告知我们。
答案 0 :(得分:2)
您需要下载“dev”版本或“静态链接”版本(在页面上稍微向下)。 dll不能转换为libs,也不能用它们(通常)生成它们自己的小导入存根(.dll.a)
从您链接的页面“开发包提供了在其他程序中使用.dll文件所需的标题和.lib / .dll.a文件。” .a / .lib通常位于“lib”文件夹中。