通过docker编译VLC

前言

VLC开发一般是通过linux系统,linux在工作中还是有不少,并且最近升级了操作系统,编译出现异常,这里试图通docker作为开发环境。可以跨平台开发。不过最终编译通过后,在window下,因为文件系统的问题,make检测文件日期会出现问题,编译效率无法胜任日常开发要求。这里稍微记录一下具体过程

正文

编写dockerfile。配置必要的ubuntu环境,安装编译需要软件,以及SDK以及NDK,设置enterpioint,具体如下:

FROM ubuntu:20.04
MAINTAINER baigui

# Replace APT sources
# RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN apt-get update
RUN apt-get -y dist-upgrade
RUN apt-get -y install apt-transport-https ca-certificates gnupg2 software-properties-common
# RUN apt-add-repository -y ppa:kelleyk/emacs
RUN apt-get update

# Install tzdata
RUN bash -c 'DEBIAN_FRONTEND=noninteractive apt-get -y install tzdata'
RUN ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN dpkg-reconfigure -f noninteractive tzdata

# set locale
RUN apt-get -y install locales
RUN locale-gen zh_CN.UTF-8
RUN locale-gen en_US.UTF-8
ENV LANG=zh_CN.UTF-8
ENV LANGUAGE=zh_CN:zh:en_US:en
ENV LC_ALL=zh_CN.UTF-8
ENV LC_ADDRESS=zh_CN.UTF-8
ENV LC_NAME=zh_CN.UTF-8
ENV LC_MONETARY=zh_CN.UTF-8
ENV LC_PAPER=zh_CN.UTF-8
ENV LC_IDENTIFICATION=zh_CN.UTF-8
ENV LC_TELEPHONE=zh_CN.UTF-8
ENV LC_MEASUREMENT=zh_CN.UTF-8
ENV LC_TIME=zh_CN.UTF-8
ENV LC_NUMERIC=zh_CN.UTF-8
ENV LC_MESSAGES=zh_CN.UTF-8
ENV LC_COLLATE=zh_CN.UTF-8
ENV LC_CTYPE=zh_CN.UTF-8

# Install user softwares
RUN apt-get -y install automake ant autopoint cmake build-essential libtool-bin patch pkg-config protobuf-compiler ragel subversion unzip git openjdk-8-jre openjdk-8-jdk flex python wget bison

ADD ./sdk/sdk/ /opt/android/sdk
ADD ./sdk/android-ndk-r21e/ /opt/android/ndk

ENV PATH=PATH=/opt/android/sdk/platform-tools:$PATH
ENV PATH=PATH=/opt/android/sdk/tools:$PATH
ENV ANDROID_SDK=/opt/android/sdk
ENV ANDROID_NDK=/opt/android/ndk

RUN update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
# End
RUN apt-get clean
ENTRYPOINT ["/bin/bash"]

这里在docker目录下下载了SDK以及NDK,根据需要自行下载,然后复制到image中。

构建image是通过

sudo docker build -t ubunut_vlc:1.1 .

最终可以通过

sudo docker run -it -h ubunut_vlc -v 'your/vlc/source/path':/vlc ubunut_vlc:1.1

如果已经构建到container,可以直接通过

sudo docker start -i yourcontainerid

编译的话,进入docker终端,可以运行编译指令即可,

后记

编译大型项目,还是需要本地开发环境,任何其他的虚拟机或者容器,多少都有问题,不过在linux环境下,通过docker编译vlc,也是一个可行的选择,编译效率没问题。

猜你喜欢

转载自blog.csdn.net/qq_28282317/article/details/126610107