openssl 64位编译_实战经验:在Windows平台编译x264

最近想研究一下大名鼎鼎的x264库,由于本人功力实在薄弱,单单是为了能在Windows平台编译这玩意,也花了不少功夫。在摸爬滚打的过程中,也碰到了一些坑,这里记录下来,希望能帮助有需要的朋友。

一. MSYS2配置

1) 首先去MSYS2官网安装包,因为我的电脑是64位系统,所以,这里我选择x86_64版本。MSYS2可以根据需要安装32位和64位版本的mingw和编译工具链,而且还有个十分好用的包管理器:pacman,简直是谁用谁知道啊。

c718df3ec876fc0bc17b3929f1165133.png

2) 双击下载下来的安装包,然后,直接无脑下一步就好。

c3b22a7e611efc6bea15da8bc9758053.png
36dd7ea6256f5140771f249417ba6b97.png
50b57c8e85a797cd6d07cf0642589c44.png

3) 更新包数据块和系统核心包

8c1f40b2f1a0ba4540f9aee5c4f4e24d.png

4) 更新其他包

1c0f43c91b030a6006c336049db3428d.png

5) 分别安装32位版本和64位版本的工具链

44d874a0a7bf0f7761079de358ab8add.png
a86ac6ce829cb6a327d626cd0d84ee08.png

6) 安装软件组和其他工具

pacman -S base-devel

pacman -S vim

pacman -S nasm

pacman -S git

7) 检查编译器是否正常

打开开始菜单的”MSYS2 64bit”,分别打开下面的“MSYS2 MinGW 32-bit”和”MSYS2 MinGW 64-bit”,执行gcc -v,看是否执行正常。特别是要看看gcc的编译平台是否对应。

二. x264编译

1) 去VLC官网下载x264源码包并解压到msys64home目录下。

2) 工程配置

如果是编译32位版本的x264,请打开MSYS2 MinGW 32-bit,然后执行以下命令:

./configure –host=i686-w64-mingw32 –enable-shared –extra-ldflags=-Wl,–output-def=libx264.def

如果是编译64位版本的x264,请打开MSYS2 MinGW 64-bit,然后执行以下命令:

./configure –host=x86_64-w64-mingw32 –enable-shared –extra-ldflags=-Wl,–output-def=libx264.def

3) 工程编译及安装

这就很简单了,两条指令搞定。

make

make install

4) 编译完成

注意,编译成功后,会在x264的目录下生成如下几个文件:

libx264.a: Linux库,暂时不需要

libx264.def: 模块定义文件,后面会基于它来生成Windows下的Lib文件

libx264.dll.a: Linux库,暂时不需要

libx264-157.dll: 用于Windows的动态链接库

5) 将DEF文件转换为Lib文件

打开Visual Studio的VC/Bin目录,下面有个lib工具可以用来生成Lib文件

32位版本Lib文件生成:

VC/Bin/Lib /DEF:libx264.def /machine:x86

64位版本Lib文件生成:

VC/Bin/amd64/Lib /DEF:libx264.def /machine:x64

三. 测试程序

至此,调用x264库的几个文件都已经成功生成了,可以编写一些简单的代码进行测试了。废话就不多说了,直接上代码:

43165637681e35f848a51fd05cdcdf0a.png

注意包含相关头文件:

1a0a850c53ff7a900f4a34eb41613580.png

四. 碰到的坑

1) 默认安装后,发现安装源连接速度太慢导致安装失败,可以修改如下文件,添加比较快的源。

msys64etcpacman.dmirrorlist.msys:

4889b2e04610ca1dabc4cec6a802f34c.png

msys64etcpacman.dmirrorlist.mingw32:

eb9ba0076a79c504b499dd7b593adbe1.png

msys64etcpacman.dmirrorlist.mingw64:

058e1e746bd20cb61542e32259311517.png

2) 生成的32位x264.dll,还依赖以下两个文件:

libgcc_s_dw2-1.dll

libwinpthread-1.dll

别担心,以上两个文件可以在这里找到:msys64mingw32bin

3) 配置x264库时,可能会发生找不到C编译器的问题,可以按照以上步骤重新安装一下基础包和工具链,然后重试。

总结

好了,朋友们,可以愉快的玩耍了。

追求完美的朋友们,可以有32位和64位的版本了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值