我试图在VS2010中的C ++项目中使用ffmpeg,而ffmpeg dev版本提供了.h文件的lib。 我将这些.lib链接到我的项目中,运行.exe文件时需要相应的.dll文件。 但是我想静态链接ffmpeg库,并运行没有.dll的。
我尝试在Mingw上编译windows上的ffmpeg源代码,结果导致一些.a档案文件。 如何获得ffmpeg静态.lib文件? 这是一个64位的程序,所以需要64位的静态库。
如何根据cmake中的configurationtypes更改库加载*path*
从静态库中去除不需要的符号
如何构build静态链接到Windows运行时的OpenSSL?
在你的输出目录中,你有一些*.def文件。 您可以使用这些文件来获取您的*.lib文件。 语法是:
lib /def:avcodec-54.def /out:avcodec-54.lib
使用您的VS版本的lib.exe 。 mine位于C:Program Files (x86)Microsoft Visual Studio 10.0VCbin 。 检查命令行选项(这是有用的添加/machine:i386 )。
另一种方法是:首先启动VS命令提示符(可以从“开始”菜单启动),而不是直接使用Windows的cmd启动msys / mingw。 它会设置一些环境变量。 从这里,用msys / mingw编译FFmpeg:FFmpeg build会自动检测VS存在,从而自动执行lib调用。
编辑 :对不起,我跳过了问题的“静态”部分。 这里有一些关于静态构建的技巧(请注意,我从来没有在Visual Studio中构建一个静态的FFmpeg,所以也许它不起作用)。 首先,当然,FFmpeg必须使用静态选项来构建:可以肯定的是,我使用这些选项,所以我没有.def的共享文件:
./configure --enable-static --disable-shared [other options]
为了有静态文件,你可以直接使用.a文件(再次:我从来没有这样做)。 检查这个问题 。
如果它不起作用,你可以尝试视觉工作室toochain而不是gcc。 但要小心:上次我试过这个(但共享的DLL),FFmpeg解码从msvc构建比gcc的输出更慢。 查看此页面以获取详细的构建说明。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。