使用Docket交叉编译Windows64的VLC3.0.21

使用Linux(Docket)交叉编译Windows64的VLC3.0.21

环境:

Ubuntu23.04

参考文档是源码里的流程:https://code.videolan.org/videolan/vlc/-/blob/3.0.x/extras/ci/gitlab-ci.yml?ref_type=heads
里面有自己搭建环境的方法,但是容易出错,反正我没成功过,若有那位大神成功了请来踢我。

安装Docker

curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh

一键安装,等待执行完成便可。
Docket的常用命令可参考我上传的资源Docker常用命令.xmind

下载镜像

docker pull registry.videolan.org/vlc-debian-win64-3.0:20211008140026

此处下载的镜像是给VLC3.0.21用的,若需要编译其他版本VLC,参考https://code.videolan.org/videolan/vlc/-/blob/master/extras/ci/gitlab-ci.yml
中相应版本的 VLC_WIN64_IMAGE 所指向的镜像,如:
在这里插入图片描述
下载过程中容易遇到卡死不动的情况,可以多次终止重下,或更换Docker镜像源,若实在不行,可使用我提供的离线安装包(只适用于3.0.21):
百度网盘
提取码:1024
下载后导入镜像

cat vlc-debian-win64-3.0_20211008140026.tar | docker import - vlc-debian-win64-3.0:20211008140026

启动容器

docker run --user root -v /opt/docker3012:/opt/docker3012 -it registry.videolan.org/vlc-debian-win64-3.0:20211008140026

# 在构建过程中因服务器不在国内,易出现连接不稳定导致的下载(构建)失败,建议使用代理
# 若拥有代理请使用:
docker run -e http_proxy=http://192.168.1.109:10809 -e https_proxy=http://192.168.1.109:10809 ……

–user用于指定登陆用户,默认并非root用户,在进行后续操作时易陷入无目录权限的问题。
-v用于指定本机与容器进行目录映射的位置关系,格式为<本机目录>:<容器目录>,这一步是为了防止容器意外退出导致下载的依赖消失。映射的<容器目录>是后续所有操作的根目录。
-e可以指定容器内使用的代理地址,防止因网络问题导致的构建VLC失败。推荐使用v2rayN,代理需付费购买,软件记得开启局域网连接。

下载VLC源码

cd <容器映射目录>
git config --global core.autocrlf false
git clone https://code.videolan.org/videolan/vlc.git

# 切换VLC版本
cd vlc
git checkout -b 3.0.21 origin/3.0.x

于写文档时(2024/01/23),3.0.x版本指的就是3.0.21版本,后续可能还会升级,请保证版本的统一。
之前出现过下载VLC源码的tar包进行编译出现找不到.git的问题,所以一直在用git克隆。若无法连接到github,可在源码根目录使用git init命令新建.git目录。

构建VLC

mkdir build
cd build
../vlc/extras/package/win32/build.sh -a x86_64

这一步很费时间大约得20多分钟。期间会从网上下载很多依赖,包括Web插件。

编译VLC

cd win64
make package-win-common

最后一步,可以根据需求编译,每次修改源码后需要重新编译(不需要再次构建)

命令 描述
make package-win-common vlc-x.x.x创建一个以所有二进制文件命名的子目录。您可以直接拷贝此目录到Windows运行 VLC。
make package-win-strip 与第一条相同,但将创建“剥离”二进制文件(即最小尺寸,无法与调试器一起使用)。
make package-win32-7zip 与第一条相同,但会将目录打包在 7z 文件中。
make package-win32-zip 与第一条相同,但会将目录打包为 zip 文件。
make package-win32 与第一条相同,但还会创建一个自动安装程序包。您必须将 NSIS 安装在其默认位置才能使其正常工作。

相关推荐

  1. rocketmq交叉编译aarch64 GNU/Linux

    2024-02-07 17:30:01       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-07 17:30:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-07 17:30:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-07 17:30:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-07 17:30:01       20 阅读

热门阅读

  1. git命令

    git命令

    2024-02-07 17:30:01      27 阅读
  2. Ubuntu23.04编译VLC3.0.20的各种错误处理

    2024-02-07 17:30:01       34 阅读
  3. 计算机网络相关题目及答案(第三章)

    2024-02-07 17:30:01       33 阅读
  4. 多个Nginx虚拟主机部署脚本

    2024-02-07 17:30:01       25 阅读
  5. NCCL源码解析: P2P 连接的建立

    2024-02-07 17:30:01       35 阅读
  6. OpenCV 入门教程

    2024-02-07 17:30:01       25 阅读
  7. 排队论——不同实体的到达过程组合问题

    2024-02-07 17:30:01       30 阅读
  8. 代码随想录算法训练营29期Day43|LeetCode 1049,494,474

    2024-02-07 17:30:01       28 阅读
  9. [C语言]C语言实战项目------单链表通讯录

    2024-02-07 17:30:01       30 阅读