vlc2.2.4在64位ubuntu下的交叉编译

时间:2020-12-09 15:55:04

本文标题:vlc2.2.4在64位Ubuntu下编译出32位的windows库

注意好几个关键的地方,折腾了好久

Ubuntu版本为16.04     64位的

根据官方教程来https://wiki.videolan.org/Win32Compile/

一定要仔细看官方教程,看不仔细容易出错哦

下面做几点说明:

1. 前言

在32位的Ubuntu上尝试了很久,失败了,换到64位上,如果你执意要在32位Ubuntn上编译,不用往下看了

2.Prepare 3rd party libraries

这一步的时候,我用的最新的vlc源码,所以使用 Prebuilt (fast)方式

3. Host triplet

注意最后一句话

Please make sure that you replace the keywords HOST-TRIPLET with either i686-w64-mingw32 or x86_64-w64-mingw32 adapted to your target Windows version (32-bit or 64-bit, respectively)

下面所出现的命令中,所有的 HOST-TRIPLET 你都要替换成i686-w64-mingw32 or x86_64-w64-mingw32,我是要编译32位的库,所以都替换成了i686-w64-mingw32

4. Go Back

这一步要注意这句话

Go back to the VLC source directory:

回到vlc源码目录下,就是你vlc的根目录,如果你中间执行了其他的cd命令,就不要傻傻的复制命令 cd -  了,

5. make prebuilt 

这的时候会去下载vlc-contrib-i686-w64-mingw32-latest.tar.bz2 (32位的),你可以自己复制一下链接,在windows上下载好复制到win32目录

6. get vlc code

vlc源码没必要git,自己在官网下载vlc-2.2.4.tar.xz也是可以的

7.make  

qt有报错,头文件找不到,主要原因是qt4的开发环境,qt5的编译坏境导致,官方文档有如下说明

  • qt4-dev-tools, qt5-default (or qt4-default if qt plugin build fails)
注意括号里的:qt编译失败则用 qt4-default,改用qt4-default后qt不报错了

但是其他报错,提示卸载程序可能会不正常,我不用卸载程序,所以不关心

8.make package-win32-zip

遇到三个错误

一个是提示/usr/include/wine/windows/stdole2.idl 文件找不到,

我搜索了一下在我的ubuntu中有/usr/include/wine-development/windows/stdole2.idl

所以我把wine-development复制了一份重命名wine就解决了

cp wine-development/ wine -rf

第二个问题 7z命令找不到,原因是前面安装p7zip时,只安装的精简包,只支持7zr命令,安装7zip完整包才支持7z命令,如下命令:

apt-get install p7zip-full

第三个问题:错误提示git访问https://code.videolan.org/videolan/npapi-vlc.git失败,如果你确定你的ubuntu可以访问网络,那就是

code.videolan.org服务器抽风了,请换个时间再来打包


到此为止,终于看到了官方说的 Everything is Ok