【系统软件01】devtoolset离线安装gcc

【系统软件01】devtoolset离线安装gcc

  • 一、SCL简介
  • 二、SCL源安装
  • 三、离线下载devtoolset
    • 1、Developer Toolset
    • 2、下载devtoolset-9
    • 3、压缩devtoolset-9
  • 三、离线安装devtoolset-9(gcc9.3)
    • 1、解压devtoolset-9.tar.gz
    • 2、安装devtoolset-9
  • 四、设置环境变量(使用gcc9.3)
    • 1、当前窗口生效
    • 2、当前用户永久生效
    • 3、所有用户永久生效(重启系统生效)
    • 4、验证
  • 四、使用devtoolset安装gcc存在的问题
    • 1、libc.so用的还是旧版本的——GLIBC还是旧版本的
    • 2、libstdc++.so用的还是旧版本的——GLIBCXX还是旧版本的
    • 3、libc++ 与 libstdc++ 是什么关系?
    • 4、libc.so是什么
  • 四、如何替换系统自带的gcc(不建议你这么做)
  • 五、SCL常用软件集
  • 六、SCL使用
  • 七、建议使用devtoolset安装gcc?还是源码编译gcc?

一、SCL简介

SCL(Software Collections)是一个CentOS/RHEL Linux平台的软件多版本共存解决方案,为RHEL/CentOS Linux用户提供一种方便、安全地安装和使用应用程序和运行时环境的多个版本的方式,同时避免把系统搞乱。

参考:
1、Linux开发环境——SCL软件集
2、转载:Centos7安装SCL源
3、CentOS 使用 IUS / SCL 第三方软件源
4、为CentOS 6、7升级gcc至4.8、4.9、5.2、6.3、7.3等高版本

二、SCL源安装

  • 1、SCL源安装
yum -y install centos-release-scl
  • 2、查看安装的scl源
[root@localhost ~]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# ls
CentOS-Base.repo       CentOS-Media.repo        CentOS-Vault.repo
CentOS-CR.repo         CentOS-SCLo-scl.repo     CentOS-x86_64-kernel.repo
CentOS-Debuginfo.repo  CentOS-SCLo-scl-rh.repo
CentOS-fasttrack.repo  CentOS-Sources.repo
[root@localhost yum.repos.d]# 

三、离线下载devtoolset

1、Developer Toolset

Developer Toolset是为CentOS和REHL Linux平台开发者设计的开发工具集,提供GCC工具集、GNU Debugger以及其它开发、调试、性能测试工具的不同版本。

  • Developer Toolset 3、Developer Toolset 4、Developer Toolset 6已经废弃。

  • 从上面的镜像源中我们可以看到,目前维护的版本是:Developer Toolset 7、Developer Toolset 8、Developer Toolset 9、Developer Toolset 10、Developer Toolset 11

  • Developer Toolset 7 - Developer Toolset 11,分别对应gcc7-gcc11

我们下面以安装gcc9.3为例,其他可维护的版本与此相同。

2、下载devtoolset-9

下载devtoolset-9,也就是gcc9.3版本

yum -y install --downloadonly --downloaddir=devtoolset-9  devtoolset-9

or

yum -y install --downloadonly --downloaddir=devtoolset-9 devtoolset-9-*

or

yum -y install --downloadonly --downloaddir=devtoolset-9 devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils 

–downloadonly表示仅仅下载
–downloaddir=devtoolset-9表示下载目录的文件夹名字是devtoolset-9

备注:下载devtoolset-9的机器,必须和不联网的机器使用的centos系统相同。否则离线安装的过程可以会出现失败。

3、压缩devtoolset-9

tar -czvf devtoolset-9.tar.gz devtoolset-9

在这里插入图片描述

三、离线安装devtoolset-9(gcc9.3)

把devtoolset-9.tar.gz拷贝到不联网的电脑。

1、解压devtoolset-9.tar.gz

tar -xzvf devtoolset-9.tar.gz

2、安装devtoolset-9

进入解压的devtoolset-9,安装devtoolset-9

cd devtoolset-9
rpm -Uvh *.rpm

四、设置环境变量(使用gcc9.3)

1、当前窗口生效

scl enable devtoolset-9 bash

or

source /opt/rh/devtoolset-9/enable

以上只有在当前窗口生效,在其他窗口无效。

2、当前用户永久生效

在~/.profile末尾假如以下1行

source /opt/rh/devtoolset-9/enable

3、所有用户永久生效(重启系统生效)

  • 方法一:(重启系统生效)
    打开/etc/profile.d/devtoolset.sh 文件:
    把以下内容加入文件

cd /etc/profile.d
vi devtoolset.sh

source /opt/rh/devtoolset-9/enable
  • 方法二:(重启系统生效)
    在/etc/profile文件末尾加入以下1行

cd /etc
vi profile

source /opt/rh/devtoolset-9/enable
  • 方法三:命令行执行(重启系统生效)
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

4、验证

which gcc
gcc -v

在这里插入图片描述

四、使用devtoolset安装gcc存在的问题

1、libc.so用的还是旧版本的——GLIBC还是旧版本的

  • 查找libc.so*
[root@localhost ~]# find / -name libc.so*
/usr/lib/x86_64-redhat-linux6E/lib64/libc.so
/usr/lib64/libc.so.6
/usr/lib64/libc.so
/opt/rh/devtoolset-9/root/usr/share/ltrace/libc.so.conf
[root@localhost ~]
  • 查看系统自带的libc.so.6
    发现最新的是GLIBC_2.17
[root@localhost ~]# ls -l /usr/lib64/libc.so.6
lrwxrwxrwx. 1 root root 12 Jun 25 09:41 /usr/lib64/libc.so.6 -> libc-2.17.so
[root@localhost ~]# strings /usr/lib64/libc.so.6 |grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_PRIVATE
___sys_nerr_GLIBC_2_3
___sys_nerr_GLIBC_2_4
___sys_nerr_GLIBC_2_1
  • 如何使用高版本的GLIBC?
    既然devtool并不会升级GLIBC,如果我们需要使用高版本的GLIBC怎么办?
    解决方案:源码编译glibc对应版本,然后创建软连接。——具体可以参考我之前写的博客

2、libstdc++.so用的还是旧版本的——GLIBCXX还是旧版本的

  • 查找系统中的libstdc++.so
[root@localhost dev1]# find / -name libstdc++.so*
/home/dev1/vmware-tools-distrib/lib/lib64/libstdc++.so.6
/home/dev1/vmware-tools-distrib/lib/lib64/libstdc++.so.6/libstdc++.so.6
/home/dev1/vmware-tools-distrib/lib/lib32/libstdc++.so.6
/home/dev1/vmware-tools-distrib/lib/lib32/libstdc++.so.6/libstdc++.so.6
find: ‘/run/user/1000/gvfs’: 权限不够
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/32/libstdc++.so
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.so
/usr/lib/vmware-tools/lib64/libstdc++.so.6
/usr/lib/vmware-tools/lib64/libstdc++.so.6/libstdc++.so.6
/usr/lib/vmware-tools/lib32/libstdc++.so.6
/usr/lib/vmware-tools/lib32/libstdc++.so.6/libstdc++.so.6
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.19
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/opt/rh/devtoolset-9/root/usr/lib/gcc/x86_64-redhat-linux/9/32/libstdc++.so
/opt/rh/devtoolset-9/root/usr/lib/gcc/x86_64-redhat-linux/9/libstdc++.so
/opt/rh/devtoolset-9/root/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.py
/opt/rh/devtoolset-9/root/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyc
/opt/rh/devtoolset-9/root/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyo
/opt/rh/devtoolset-9/root/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/opt/rh/devtoolset-9/root/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/opt/rh/devtoolset-9/root/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
[root@localhost dev1]
  • 查看系统自带的libstdc++.so.6
    发现使用devtool安装后,libstdc++依然是系统原有的GLIBCXX_3.4.19

[root@localhost dev1]# ls -l /usr/lib64/libstdc++.so.6
lrwxrwxrwx. 1 root root 19 719 2021 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19
[root@localhost dev1]# strings /usr/lib64/libstdc++.so.6 |grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_DEBUG_MESSAGE_LENGTH
[root@localhost dev1]# 
  • 如果要使用高版本的GLIBCXX怎么办?
    解决方案:源码方式编译gcc,因为源码编译安装gcc的方式,会自带高版本的GLIBCXX,也就是高版本的libstdc++。

3、libc++ 与 libstdc++ 是什么关系?

libc++和libstdc++都是C++标准库的实现,两者都提供了相同的C++标准库功能,包括容器、算法、迭代器、输入输出等等。但是,它们是由不同的团队开发并维护的,也有着不同的设计理念和实现方式。本文将详细介绍这两个库的特点和区别,以及它们之间的关系。

首先,让我们来了解一下libc++和libstdc++的基本情况。libc++是由苹果公司开发和维护的C++标准库实现,旨在提供一个更加现代化和高效的C++标准库。它的设计理念是利用C++11和C++14中的新特性,尽可能地避免使用C++03中的一些问题和不足之处。libc++使用了更加现代化的编程风格和技术,比如使用C++11中的move语义和智能指针等等。libc++在macOS、iOS、watchOS等苹果生态系统中被广泛使用。

而libstdc++则是由GNU项目组开发和维护的C++标准库实现,也是GCC编译器的默认标准库。它的设计理念是充分利用C++03中的特性,尽可能地支持标准C++03规范。libstdc++的实现方式和设计思路与libc++有所不同,比如它更多地使用了指针和传统的C++语言特性。

参考​libc++ 与 libstdc++ 是什么关系?

4、libc.so是什么

libc.so 是 Linux 系统中的 C标准库(C standard library)的动态链接库文件。它是C语言程序开发中的核心库之一,提供了许多常用的函数和工具,用于实现各种基本的操作,如字符串处理、内存分配、文件操作等。

C标准库包含在应用程序开发中经常使用的函数,这些函数已经被编写好并进行了优化,可以方便地在应用程序中调用。libc.so 动态链接库在程序运行时加载到内存中,并提供了这些函数的实现。

常见的一些 libc.so 函数包括:
字符串操作函数:如 strcpy、strcat、strlen 等。
内存分配函数:如 malloc、free、calloc 等。
文件操作函数:如 fopen、fclose、fwrite、fread 等。
时间和日期函数:如 time、strftime 等。
数学函数:如 sin、cos、sqrt 等。
通过使用 libc.so 提供的这些函数,开发者可以更加高效地编写应用程序,并利用标准库的功能来简化开发过程。

值得注意的是,动态链接库的名称可能因操作系统和版本而异。在某些系统上,libc.so 可能被称为 libc.so.6 或其他类似的名称,其中的数字表示库的版本。这些库文件通常位于系统的标准库路径下,开发者可以通过链接器将它们与应用程序进行关联,以便在运行时调用库中提供的函数。

四、如何替换系统自带的gcc(不建议你这么做)

截止目前,系统有两个gcc,一个系统自带的gcc4.8.5,另外一个就是我们刚刚安装配置的gcc9.3了,是否有办法把系统自带的gcc4.8替换成高版本的gcc9.3呢,答案是可以的。方案就是,把原有的gcc备份,并建立新的软链接。

  • 把系统原有的gcc、g++、c++备份
cd usr/bin
mv gcc gcc.bak
mv g++ g++.bak
mv c++ c++.bak
mv cc cc.bak
mv cpp cpp.bak
mv gcc-nm gcc-nm.bak
mv gcc-ar gcc-ar.bak
mv gcc-ranlib gcc-ranlib.bak
  • 建立软链接gcc、g++、c++
ln -sv /opt/rh/devtoolset-9/root/usr/bin/gcc /usr/bin/gcc
ln -sv /opt/rh/devtoolset-9/root/usr/bin/g++ /usr/bin/g++
ln -sv /opt/rh/devtoolset-9/root/usr/bin/c++ /usr/bin/c++
ln -sv /opt/rh/devtoolset-9/root/usr/bin/cc /usr/bin/cc
ln -sv /opt/rh/devtoolset-9/root/usr/bin/cpp /usr/bin/cpp
ln -sv /opt/rh/devtoolset-9/root/usr/bin/gcc-nm /usr/bin/gcc-nm
ln -sv /opt/rh/devtoolset-9/root/usr/bin/gcc-ar /usr/bin/gcc-ar
ln -sv /opt/rh/devtoolset-9/root/usr/bin/gcc-ranlib/usr/bin/gcc-ranlib

五、SCL常用软件集

  1. Developer Toolset

Developer Toolset是为CentOS和REHL Linux平台开发者设计的开发工具集,提供GCC工具集、GNU Debugger以及其它开发、调试、性能测试工具的不同版本。

Developer Toolset 3、Developer Toolset 4、Developer Toolset 6已经废弃。

Developer Toolset 7对应GCC 7版本

yum install devtoolset-7

Developer Toolset 8对应GCC 8版本

  1. Clang and LLVM Toolset

Clang and LLVM Toolset是为CentOS和REHL Linux平台开发者设计的开发工具集,提供LLVM编译器基础设施、C/C++语言Clang编译器、LLDB调试器、代码分析相关工具。

yum install llvm-toolset-7.0

安装Clang and LLVM Toolset

  1. Go Toolset

Go Toolset是为CentOS和REHL Linux平台开发者设计的开发工具集,提供Golang编程语言库和工具。

yum install go-toolset-7

安装Go Toolset

  1. Python软件集

SCL中,Python软件集包括Python27、Python33、Python34、Python35、Python36五个版本,相应的SCL软件集名称为python27、python33、rh-python34、rh-python35、rh-python36。

rh-python36包含Python3.6解释器、Web编程扩展库、mod_wsgi、PostgreSQL数据库接口库、numpy、scipy。

yum install rh-python36

安装rh-python36

  1. Redis软件集

Redis软件集有Redis3.2和Redis5.0两个版本,SCL名称分别为rh-redis32和rh-redis5。

yum install rh-redis5

安装rh-redis5

  1. MySQL

MySQL软件集有MySQL5.5、MySQL5.6、MySQL5.7、MySQL8.0四个版本,SCL名称分别为rh-mysql55、rh-mysql56、rh-mysql57、rh-mysql80。

yum install rh-mysql80

安装rh-mysql80

六、SCL使用

  1. SCL软件集查看
yum list all --enablerepo='centos-sclo-rh'

查询SCL支持的软件集合

  1. 查看已安装SCL软件集
scl --list
  1. 查询已安装SCL软件集
scl --list SCL_NAME

七、建议使用devtoolset安装gcc?还是源码编译gcc?

  • 临时使用不同版本的gcc,建议devtoolset
  • 长期项目使用gcc,建议源码编译安装gcc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/15113.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DevOps-GitHub/GitLab

DevOps-GitHub/GitLab GitHub是一个开源代码托管平台。基于web的Git仓库,提供共有仓库和私有仓库(私有仓库收费)。 GitLab可以创建免费私有仓库。 GitHub 为了快速操作,这里对创建仓库以及注册不做说明。 首先再GitHub上创建一…

词典项目练习

思维导图 客户端 #include "head.h" //用户提示界面 void help_info1() {printf("\t-----------------------------------------------\n");printf("\t| HENRY 在线辞典 |\n");printf("\t|版本:0.0.1 …

华为开源自研AI框架昇思MindSpore应用案例:Vision Transformer图像分类

目录 一、环境准备1.进入ModelArts官网2.使用CodeLab体验Notebook实例 二、环境准备与数据读取三、模型解析Transformer基本原理Attention模块 Transformer EncoderViT模型的输入整体构建ViT 四、模型训练与推理模型训练模型验证模型推理 近些年,随着基于自注意&…

PP-Matting: AI高精度图像前景Matting,让抠图轻而易举

分割和Matting的一个重要区别是:分割返回的是像素分类标签,其结果是整型数据;而Matting返回的是属于前景或背景的概率P,从而在前景与背景交互区域产生渐变的效果,使得抠图更加自然。Matting分割模型训练完成后,对于原始图像每个位置上的像素,都将生成一个表示其前景透明…

创建维基WIKI百科和建立百度百科有何不同?

很多企业有出口业务,想在互联网上开展全球性网络营销,维基百科往往被认为是开展海外营销的第一站。其作用相当于开展国内网络营销的百度百科,经常有些企业给小马识途营销顾问提供的词条内容就是百度百科的内容,可事实上两个平台的…

ETHERNET/IP 转ETHERCAT连接倍福和欧姆龙PLC的配置方法

ETHERNET/IP和ETHERCAT是两种不同的协议,它们在工业生产中都有广泛的应用。然而,由于协议不同,这两种设备之间无法通讯,这给工业生产带来了很大的麻烦。而捷米JM-EIP-ECAT网关应运而生,它能够连接到ETHERNET/IP总线和E…

小研究 - JVM 垃圾回收方式性能研究(一)

本文从几种JVM垃圾回收方式及原理出发,研究了在 SPEC jbb2015基准测试中不同垃圾回收方式对于JVM 性能的影响,并通过最终测试数据对比,给出了不同应用场景下如何选择垃圾回收策略的方法。 目录 1 引言 2 垃圾回收算法 2.1 标记清除法 2.2…

【数据结构】栈(Stack)的实现 -- 详解

一、栈的概念及结构 1、概念 栈:一种特殊的线性表,其只允许在表尾进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出 LIFO(Last In First Out)的原则。 压栈…

SpringBoot的pom文件、容器、组件

一、pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4…

求分享如何批量压缩视频的容量的方法

视频内存过大&#xff0c;不但特别占内存&#xff0c;而且还会使手机电脑出现卡顿的现象&#xff0c;除此之外&#xff0c;如果我们想发送这些视频文件可能还会因为内存太大无法发送。因此&#xff0c;我们可以批量地压缩视频文件的内存大小&#xff0c;今天小编要来分享一招&a…

聊聊原子弹之父:奥本海默

最近诺兰的电影奥本海默即将热映,其改编自Kai Bird和 Martin J. Sherwin的 2005 年Pulitzer Prize 获奖小说:“American Prometheus: The Triumph and Tragedy of J. Robert Oppenheimer”。这本小说作者研究奥本海默25年,才得以成形,可见奥神本人身上的故事曲折和传奇。 …

Arrays(数组)工具类

java.util.Arrays 是一个与数组相关的工具类&#xff0c;里面提供了大量静态方法&#xff0c;用来实现数组常见的操作。 Arrays.toString ( 数组名 )将参数数组变成字符串&#xff08;按照默认格式&#xff1a;[10, 20, 30]&#xff09;Array.sort ( 数组名 ) 按照默认升序&…

数据库索引优化与查询优化——醍醐灌顶

索引优化与查询优化 哪些维度可以进行数据库调优 索引失效、没有充分利用到索引-一索引建立关联查询太多JOIN (设计缺陷或不得已的需求) --SQL优化服务器调优及各个参数设置 (缓冲、线程数等)–调整my.cnf数据过多–分库分表 关于数据库调优的知识点非常分散。不同的 DBMS&a…

Pycharm工具Python开发自动添加注释(详细)

方法自动添加参数注释 定义了一个函数&#xff0c;在函数下面敲入了三个双引号后&#xff0c;enter回车并没有自动出现注释&#xff0c;如图&#xff1a; 解决办法 Pycharm中依次打开File —> Settings —> Tools —> Python Integrated Tools&#xff0c;如图&…

isp调试工具环境搭建及其介绍!

一、isp调试环境搭建&#xff1a; 后期调试isp&#xff0c;是在rv1126提供的RKISP2.x Tuner工具上进行调试&#xff0c;所以我们大前提必须要把这个环境和一些操作先搞熟悉来&#xff0c;后面有一些专用术语&#xff0c;我们遇到了再去看&#xff0c;现在专门看一些专用术语&am…

【TypeScript】类型声明及应用(二)

【TypeScript】类型声明及应用&#xff08;二&#xff09; 一、前言 TypeScript开发中需要对定义的变量指定类型&#xff0c;目前版本都支持哪些类型&#xff0c;每一个类型都有哪些含义&#xff0c;在这篇文章中&#xff0c;我们将会对其进行总结说明 二、JavaScript基本数据…

Scrapy和Selenium整合(一文搞定)

文章目录 前言一、开始准备1. 包管理和安装chrome驱动2. 爬虫项目的创建&#xff08;举个栗子&#xff09;3. setting.py的配置 二、代码演示1. 主爬虫程序2. 中间件的配置3. 定义item对象4. 定义管道 总结 前言 scrapy和selenium的整合使用 先定个小目标实现万物皆可爬&#…

Pycharm debug程序,跳转至指定循环条件/循环次数

在断点出右键&#xff0c;然后设置条件 示例 for i in range(1,100):a i 1b i 2print(a, b, i) 注意&#xff1a; 1、你应该debug断点在循环后的位置而不是循环上的位置&#xff0c;然后你就可以设置你的条件进入到指定的循环上了 2、设置条件&#xff0c;要使用等于符号…

C# Assembly 反射动态加载程序集(动态加载Dll)Demo

No1、本Demo 定义了一个接口IserviceToolFrame&#xff0c;接口中有一个方法Run。 No2、在另外两个工程中&#xff0c;分别定义两个类serviceToolCatComplete、serviceToolDogComplete实现接口IserviceToolFrame。 No3、控制台程序通过动态加载Dll的方式去调用IserviceToolFram…

Flutter 使用texture_rgba_renderer实现桌面端渲染视频

Flutter视频渲染系列 第一章 Android使用Texture渲染视频 第二章 Windows使用Texture渲染视频 第三章 Linux使用Texture渲染视频 第四章 全平台FFICustomPainter渲染视频 第五章 Windows使用Native窗口渲染视频 第六章 桌面端使用texture_rgba_renderer渲染视频&#xff08;本…