本文标题: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)
但是其他报错,提示卸载程序可能会不正常,我不用卸载程序,所以不关心
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