链接ffmpeg共享构建

时间:2013-01-28 12:43:49

标签: dll linker ffmpeg cygwin shared-libraries

我正在尝试在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
我哪里错了?

如果需要源代码,请告知我们。

1 个答案:

答案 0 :(得分:2)

您需要下载“dev”版本或“静态链接”版本(在页面上稍微向下)。 dll不能转换为libs,也不能用它们(通常)生成它们自己的小导入存根(.dll.a)

从您链接的页面“开发包提供了在其他程序中使用.dll文件所需的标题和.lib / .dll.a文件。” .a / .lib通常位于“lib”文件夹中。