libvpx在Windows下的编译

       因为要实现一个基于libvpx的视频编解码库,而软件运行环境又是Windows下,因此写这个博客记录自己的编译过程,不少东西都是借用的前辈们的经验,自己则是简单地记录一下。

       首先安装Windows下的类linux环境mingw,也可以直接安装msys2,msys2提供了Linux下的命令行工具和git等其他常用工具,同时提供了mingw环境,该环境可以提供gcc编译器和C语言的标准头文件和基本库,可以满足某些Windows下编译程序需要Linux下头文件支持的情况,可以通过Windows命令行进入msys2目录下,运行msys2_shell.cmd,即可打开一个类Linux终端,之后按照路径home/Administrator/source进入指定目录,libvpx项目可通过git clone直接从github获得,路径:https://github.com/webmproject/libvpx.git

我需要获得libvpx的静态库.lib,该类大型项目往往是通过makefile进行组织的,要想获得个性化的makefile,则需要实现编写合适的configure文件,在Linux环境下可以通过./configure + option的方式生成,可以直接在libvpx目录下进行配置,配置命令的格式为“./configure + 选项”,配置命令:

./configure --enable-static --target=x86-win32-vs2010 --enable-vp8-encoder --enable-vp8-decoder

第一个选项代表我想要获得libvpx的静态库,第二个意为make的目标是生成x86—win32平台下的VS解决方案,后面的选项则是对具体编解码器的选择。成功配置后将得到新的makefile文件,直接输入make命令,成功后将生成一个sln文件,该文件是VS工程的解决方案入口,打开sln进行编译,将会发生找不到头文件类似的错误,比如:

fatal error C1083: Cannot open include file: 'libyuv/cpu_id.h': No such file or directory

打开项目属性—C/C++—general打开项目的头文件路径,将/home/Administrator/source/libvpx改成“.”,因为home作为msys2的资源根目录,该绝对路径是针对msys2环境写的,vs是不能找到的,因此将之替换成相对目录即可。之后继续build,生成了如下错误:

1>------ Build started: Project: gtest, Configuration: Debug Win32 ------

1>cl : Command line warning D9002: ignoring unknown option '/home/Administrator/source/libvpx\third_party\googletest\src\src\gtest-all.cc'

1>cl : Command line error D8003: missing source filename

发生该错误需要在工程里面删除gtest-all.cc,并重新将gtest-all.cc文件(libvpx\third_party\googletest\src\src\gtest-all.cc)放到工程里面。build即可生成vpxmt.lib

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值