https://github.com/ZLMediaKit/ZLMediaKit
一 获取代码
git clone https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
git submodule update --init
git submodule update --init
命令用于初始化和更新 Git 仓库中的子模块(submodules)。这个命令在 Git 仓库中包含对其他 Git 仓库作为依赖时非常有用。下面是命令的详细解释:
-
--init:这个选项用于初始化仓库中的子模块配置。它会读取
.gitmodules
文件,这个文件包含了子模块的 URL 和预期的提交哈希值等信息。运行--init
选项后,Git 会在.git/config
文件中记录这些子模块的信息,并在.git/modules
目录下为每个子模块创建相应的配置和仓库目录。 -
update:这个选项用于更新子模块到
.gitmodules
文件中指定的提交。如果仅运行git submodule update
而没有--init
,Git 会假定子模块已经被初始化,并尝试更新它们到预期的提交。但是,如果子模块尚未初始化,这个命令会失败。因此,通常将--init
和update
结合使用以确保子模块被正确初始化和更新。
结合起来,git submodule update --init
命令的作用可以总结为:
- 读取
.gitmodules
文件,初始化仓库中的子模块配置。 - 检出(checkout)每个子模块到
.gitmodules
文件中指定的提交。
如果你还需要递归地初始化和更新子模块中的子模块,可以添加 --recursive
选项,即使用 git submodule update --init --recursive
命令。
这个命令对于管理大型项目中的依赖非常有用,可以确保所有依赖的库或项目都位于正确的版本,从而避免版本冲突和依赖问题。
二 下载第三方库
2.1 gcc 版本>=4.8
- 查看版本
gcc --version
gcc -v
- 安装
sudo yum install gcc
sudo yum install gcc-c++
2.2 cmake版本>=3.1.7
在 Linux 系统上,你可以通过终端命令来查看已安装的 CMake 版本。CMake 是一个跨平台的自动化构建系统,它使用一个名为 CMakeLists.txt
的文件来定义项目的构建过程。
要查看 CMake 的版本,请打开你的终端并输入以下命令:
cmake --version
这个命令将输出 CMake 的版本信息,包括版本号、CMake suite 的组件(如 cmake、cmake-gui、ctest 等)的版本,以及 CMake 是在哪个日期构建的。
如果你没有看到这个命令的输出,或者系统提示 cmake: command not found
,那么可能是 CMake 没有被正确安装在你的系统上,或者它的可执行文件没有被添加到你的 PATH 环境变量中。
在这种情况下,你可以尝试以下几种方法:
-
确认 CMake 是否已安装:检查你的系统包管理器(如 apt、yum、dnf 等)是否包含了 CMake 包。
-
使用包管理器安装 CMake:如果你的系统上还没有安装 CMake,你可以使用包管理器来安装它。例如,在基于 Debian 的系统(如 Ubuntu)上,你可以使用
sudo apt-get install cmake
命令来安装。 -
检查 PATH 环境变量:如果 CMake 已经安装,但是系统找不到它,可能是因为它的可执行文件路径没有被添加到 PATH 环境变量中。你可以通过
echo $PATH
命令来查看当前的 PATH 设置,并确认 CMake 的安装路径是否包含在内。 -
使用完整路径运行 CMake:如果你知道 CMake 的安装路径,但是不想修改 PATH 环境变量,你可以直接使用完整路径来运行 CMake 命令。例如,如果 CMake 安装在
/usr/local/bin/cmake
,你可以使用/usr/local/bin/cmake --version
来查看版本信息。
- 安装
sudo yum -y install cmake //版本可能是2.8,编译时版本不够,可按以下方式安装cmake
wget https://github.com/Kitware/CMake/releases/download/v3.17.0-rc3/cmake-3.17.0-rc3.tar.gz
tar -xvf cmake-3.17.0-rc3.tar.gz
cd cmake-3.17.0-rc3
./configure
make -j4
sudo make install
2.3 安装依赖库
- 查看版本
rpm -qa | grep openssl-devel
rpm -qa | grep SDL2-devel
- 安装
sudo yum install openssl-devel
sudo yum install SDL2-devel
2.3.2 解压源代码
2.3.3 配置编译环境
2.3.34 编译 SDL2
五、安装 SDL2
六、验证安装
-
从源代码编译 SDL2 的步骤通常包括下载源代码、配置编译环境、编译和安装等。以下是一个详细的指南:
2.3.1 下载 SDL2 源代码
- 访问 SDL 的官方网站(Simple DirectMedia Layer - Homepage)或其在 GitHub 上的仓库(GitHub - libsdl-org/SDL: Simple Directmedia Layer)。
- 在“Releases”部分找到最新的稳定版本,并下载其源代码压缩包(通常是
.tar.gz
格式)。 -
使用
tar
命令解压下载的源代码压缩包。例如,如果下载的文件名是SDL2-x.y.z.tar.gz
,你可以使用以下命令解压:tar -xzvf SDL2-x.y.z.tar.gz
这将创建一个名为
SDL2-x.y.z
的目录,其中包含 SDL2 的源代码。 -
进入解压后的源代码目录:
cd SDL2-x.y.z
-
运行
./configure
脚本以配置编译环境。这个脚本会检查你的系统环境,并生成适合你的系统的 Makefile 文件。在配置过程中,你可以根据需要传递一些选项来定制编译过程。例如,如果你想要编译一个静态库,可以使用--enable-static
选项。注意:在某些系统上,你可能需要安装额外的依赖项(如
autoconf
、automake
、libtool
等)才能运行./configure
脚本。 -
在配置完成后,使用
make
命令来编译 SDL2。这个命令会调用 Makefile 文件中的规则,并使用你的系统编译器来编译源代码。make
编译过程可能需要一些时间,具体取决于你的系统性能和源代码的复杂性。
-
编译完成后,使用
make install
命令来安装 SDL2。这个命令会将编译好的库文件、头文件和其他资源复制到你的系统目录中(通常是/usr/local/lib
和/usr/local/include
)。
注意:使用sudo make install
sudo
命令是因为安装过程通常需要写入系统目录的权限。 -
你可以通过编写一个简单的 SDL2 程序来验证安装是否成功。例如,创建一个包含以下代码的 C 文件:
#include <SDL2/SDL.h> #include <stdio.h> int main(int argc, char* argv[]) { if (SDL_Init(SDL_INIT_VIDEO) != 0) { printf("SDL_Init Error: %s\n", SDL_GetError()); return 1; } SDL_Window* window = SDL_CreateWindow("SDL2 Test", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN); if (window == NULL) { printf("SDL_CreateWindow Error: %s\n", SDL_GetError()); return 1; } SDL_Delay(3000); SDL_DestroyWindow(window); SDL_Quit(); return 0; }
-
编译并运行该程序。如果一切顺利,你应该能够看到一个显示窗口,并在 3 秒后自动关闭。
gcc -o test_sdl2 test_sdl2.c -lSDL2 ./test_sdl2
注意:在编译时,你需要确保编译器能够找到 SDL2 的头文件和库文件。这通常意味着你需要将 SDL2 的安装路径添加到你的编译器搜索路径中(例如,使用
-I
和-L
选项),或者将 SDL2 的库文件链接到你的程序中(使用-lSDL2
选项)。但是,如果你按照上述步骤正确安装了 SDL2,这些路径通常会被自动配置正确。
2.3 安装ffmpeg>=4.2.1
增加源:
sudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
https://www.ffmpeg.org/download.html#build-linux //官网上下载4.2.1的包
tar -xvf ffmpeg-4.2.1.tar.xz
cd ffmpeg
./configure //可能会失败,报错为nasm/yasm not found or tool old.....
//如果报错。执行sudo yum install yasm
make
make install
ffmpeg -version //可能会出现找不到/usr/bin/ffmpeg的错误,将/usr/local/bin的ffmpeg复制到/usr/bin目录下即可
出现类似以下图片所示表示成功
三 安装ZLMediaKit
cd ZLMediaKit
mkdir build
cd build
cmake ..
make -j4
make install