Jenkins 创建 Node 到 Windows
Jenkins 创建 Node 到 Windows
一. 新建 Node
Dashboard -> Manage Jenkins -> Manage Nodes and Clouds

Dashboard -> Nodes -> New Node


二. 配置节点


Node:节点名
Description:节点描述
Number of executors:节点最大同时执行任务数量
Remote root directory:节点 代理机器上保存 Jenkins 启动文件的目录,最好使用绝对路径
Labels:节点标签,可以是多个,中间以空格分隔
Usage:控制何时构建时使用这个 Node,这里选择的 Only build jobs with label expressions matching this node:构建时只有当 任务Label 选择为此节点中包含的 Label 时,才会执行这个节点
Launch method :启动方法,这里选择了 Launch agents via SSH 通过 SSH 启动
Host:真正运行Node 的电脑的 ip
Credentials:凭证,上面选择了 Launch agents via SSH,这里需要选择一个 SSH 的凭证
Jenkins 配置 Credentials 凭证
Host Key Verfication Strategy:控制Jenkins在连接时如何验证远程主机提供的SSH密钥
Availability:控制Jenkins何时启动和停止此代理,此处选择了 Keep this agent online as much as possible:尽可能让这个代理保持在线状态
Tool Locations:用到的工具在 Windows 电脑上的路径
上面配置了 git,如果不配置,默认使用的是 启动 Jenkins电脑系统上配置的 git,会报错
最后点击 Save 保存
三. 创建如下

此时 节点 WinTest 图标上标记一个 红色 X,说明这个节点还未启动
点击 WinTest 节点名,打开节点
Status:节点状态,此时节点未启动
Deleta Agent:删除节点
Configure:节点配置,点击打开 回到 二. 配置节点
四.配置 SSH 服务
回到第二步看 Host 填写的 ip 这个是真正运行 Node 的 Windows 电脑的 ip
Jenkins 是在 Mac 电脑上运行,Node 配置中Launch method :启动方法,选择了 Launch agents via SSH
到 Windows 电脑 Windows 配置 SSH 服务
Mac 电脑上的 公钥 配置到 Windows 电脑中,具体位置在 Windows 配置 SSH 服务 找
测试 Mac 通过 SSH 连接 Windows 电脑,如果能成功连接,到 第五步. 启动节点
注意:Jenkins 中 创建的 SSH 凭证中填写的 UserName 需要配置为 Windows电脑的登录用户名,否则验证失败
五. 启动节点

到 Status 页签,点击 Launch agent
下面几种报错原因以及解决方案
1.
Connection refused (Connection refused)
SSH Connection failed with IOException: "Connection refused (Connection refused)", retrying in 15 seconds. There are 7 more retries left.
Connection refused (Connection refused)
原因:代理机器系统是 Win10,代理机器上还没有启动 SSH 服务
Windows 启动 SSH 服务
再次执行 Launch Agent
Warning: no key algorithms provided; JENKINS-42959 disabled
SSHLauncher{host='10.0.40.182', port=22, credentialsId='liqiangWin', jvmOptions='', javaPath='', prefixStartSlaveCmd='', suffixStartSlaveCmd='', launchTimeoutSeconds=60, maxNumRetries=10, retryWaitTime=15, sshHostKeyVerificationStrategy=hudson.plugins.sshslaves.verifiers.KnownHostsFileKeyVerificationStrategy, tcpNoDelay=true, trackCredentials=true}
[02/18/25 21:20:44] [SSH] Opening SSH connection to 10.0.40.182:22.
Searching for 10.0.40.182 in /Users/townest/.ssh/known_hosts
Searching for 10.0.40.182:22 in /Users/townest/.ssh/known_hosts
[02/18/25 21:20:44] [SSH] WARNING: No entry currently exists in the Known Hosts file for this host. Connections will be denied until this new host and its associated key is added to the Known Hosts file.
Key exchange was not finished, connection is closed.
SSH Connection failed with IOException: "Key exchange was not finished, connection is closed.", retrying in 15 seconds. There are 10 more retries left.
Searching for 10.0.40.182 in /Users/townest/.ssh/known_hosts
Searching for 10.0.40.182:22 in /Users/townest/.ssh/known_hosts
[02/18/25 21:20:59] [SSH] WARNING: No entry currently exists in the Known Hosts file for this host. Connections will be denied until this new host and its associated key is added to the Known Hosts file.
Key exchange was not finished, connection is closed.
报错提示连接的 SSH 主机的身份没有经过验证,可能存在中间人攻击的风险。
为了确保安全,SSH 客户端需要验证连接的服务器的身份,以防止被伪装或受到中间人攻击
回到 第二步 Host Key Verfication Strategy:Known hosts file Verification Strategy
主机密钥验证策略 配置的为 从 Known 文件验证
可以到 Mac 电脑上到 ~/.ssh 路径,可以看到一个 known_hosts 文件,这里边存放了需要访问的电脑的 ip
打开会看到 每行以一个 ip 地址开头,后跟 ssh 公钥
比如上面 启动 SSH 服务的 Windows 电脑 ip 为 10.0.40.182
解决方案有多种,这里只处理一种
# ssh-keyscan -H hostname >> ~/.ssh/known_hosts
# hostname 就是启动 SSH 服务电脑的 IP
ssh-keyscan -H 10.0.40.182 >> ~/.ssh/known_hosts
这个命令会获取主机10.0.40.182的公钥并将其追加到 ~/.ssh/known_hosts 文件中
SSHLauncher{host='10.0.40.182', port=22, credentialsId='liqiangWin', jvmOptions='', javaPath='', prefixStartSlaveCmd='', suffixStartSlaveCmd='', launchTimeoutSeconds=60, maxNumRetries=10, retryWaitTime=15, sshHostKeyVerificationStrategy=hudson.plugins.sshslaves.verifiers.NonVerifyingKeyVerificationStrategy, tcpNoDelay=true, trackCredentials=true}
[02/19/25 11:27:27] [SSH] Opening SSH connection to 10.0.40.182:22.
[02/19/25 11:27:27] [SSH] WARNING: SSH Host Keys are not being verified. Man-in-the-middle attacks may be possible against this connection.
ERROR: Server rejected the 1 private key(s) for xxxxx (credentialId:Win/method:publickey)
[02/19/25 11:27:27] [SSH] 认证失败。
认证失败。
[02/19/25 11:27:27] Launch failed - cleaning up connection
[02/19/25 11:27:27] [SSH] 连接关闭。
SSH 服务器上配置了 Mac 电脑的公钥,不了解的看这里 Windows 配置 SSH 服务
上面这个报错是 SSH服务器 通过 Mac 的公钥验证 Mac 电脑的私钥 失败
ERROR: Server rejected the 1 private key(s) for xxxxx (credentialId:Win/method:publickey)
看上面报错日志中的 for xxxxx 这个 xxxxx 是导致验证失败的原因
这是因为 我在Jenkins 中配置 SSH密钥凭证的时候 UserName 没有写成 开启 SSH 服务的 Windows 电脑的登录账号名
回到 SSH 密钥凭证,修改密钥凭证的 UserName为 SSH 服务的 Windows 电脑的登录账号名
[SSH] Starting agent process: cd "F:\Jenkins" && E:\JDK12/bin/java -jar remoting.jar -workDir D:\jenkins_ws -jar-cache D:\jenkins_ws/remoting/jarCache
Error: Unable to access jarfile remoting.jar
Agent JVM has terminated. Exit code=1
上面报错原因是 通过 JDK 启动 jenkins 的时候没有对 remoting.jar 的权限
(1) remoting.jar 文件的作用:我们这里是 Mac 电脑上配置的 Jenkins 添加一个 Node 到 Windows 电脑上,那么Windows 电脑需要从 Mac 电脑的 Jenkins 中下载一个 remoting.jar 有的是 agent.jar 到 Windows 电脑上,然后通过 JDK命令执行这个 remoting.jar 或者 agent.jar,启动Jenkins 在 Windows 电脑上运行
(2) 对于命令中的几个路径从哪里来的做个解释
cd "F:\Jenkins" && E:\JDK12/bin/java -jar remoting.jar -workDir D:\jenkins_ws -jar-cache D:\jenkins_ws/remoting/jarCache
先到 Node 配置界面
Remote root directory 配置为 F:\Jenkins
Remoting Work directory 配置为 D:\jenkins_ws

这个命令是一个组合命令
先执行 cd "F:\Jenkins" 切换路径
在执行 E:\JDK12/bin/java -jar remoting.jar -workDir D:\jenkins_ws -jar-cache D:\jenkins_ws/remoting/jarCache
Jenkins 执行 通过 SSH 连接到 SSH 服务的时候其实是在路径 C:\Users\Administrator>
remoting.jar 文件是被 Jenkins 放到路径 F:\Jenkins,所以要先 cd 到这个路径
Error: Unable to access jarfile remoting.jar 纯属是个人 Windows 系统 cmd 环境不同导致的报错
经过测试发现有的电脑 cmd 不管当前在哪个盘符
执行 cd "F:\Jenkins" && E:\JDK12/bin/java -jar remoting.jar -workDir D:\jenkins_ws -jar-cache D:\jenkins_ws/remoting/jarCache 就是成功的
我的电脑上 如果 cmd 当前盘符不是 F盘 那么就会报这个错
修改命令在 cd 后边加上 /d
cd /d "F:\Jenkins" && E:\JDK12/bin/java -jar remoting.jar -workDir D:\jenkins_ws -jar-cache D:\jenkins_ws/remoting/jarCache
执行发现可以执行成功
解释:在命令行中使用 /d 参数的作用是允许跨磁盘驱动器切换目录
如果不加 /d 参数,cd 命令通常只能在同一磁盘驱动器内切换目录
例如
如果当前目录在 C 盘,使用 cd 命令切换到 C 盘的其他目录是可以正常工作的
但如果要切换到 D 盘的某个目录则会失败
而加上 /d 参数后,就可以跨磁盘驱动器切换目录,例如从 C 盘切换到 D 盘的某个目录
因为这个命令行是 Jenkins 拼接的,我没找到在哪里配置的,所以我没法加 /d
我的修改方案是,Remote root directory:C:\Jenkins
直接修改到 C盘
再次重新 Launch agent
[SSH] Starting agent process: cd "C:\Jenkins" && E:\JDK12/bin/java -jar remoting.jar -workDir D:\jenkins_ws -jar-cache D:\jenkins_ws/remoting/jarCache
org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
: Using D:\jenkins_ws\remoting as a remoting work directory
rg.jenkinsci.remoting.engine.WorkDirManager setupLogging
Both error and output logs will be printed to D:\jenkins_ws\remoting
<===[JENKINS REMOTING CAPACITY]===>channel started
Remoting version: 4.10
上面日志显示节点启动成功
[02/21/25 14:14:07] [SSH] Starting agent process: cd "C:\Jenkins_2" && java -jar remoting.jar -workDir C:\Jenkins_2 -jar-cache C:\Jenkins_2/remoting/jarCache
2�� 21, 2025 2:14:07 ���� org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
��Ϣ: Using C:\Jenkins_2\remoting as a remoting work directory
2�� 21, 2025 2:14:07 ���� org.jenkinsci.remoting.engine.WorkDirManager setupLogging
��Ϣ: Both error and output logs will be printed to C:\Jenkins_2\remoting
<===[JENKINS REMOTING CAPACITY]===>channel started
2�� 21, 2025 2:14:07 ���� hudson.remoting.UserRequest perform
����: LinkageError while performing UserRequest:hudson.slaves.SlaveComputer$SlaveVersion@455044b3
java.lang.UnsupportedClassVersionError: Failed to load hudson.slaves.SlaveComputer$SlaveVersionat hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:472)at hudson.remoting.RemoteClassLoader.loadRemoteClass(RemoteClassLoader.java:301)at hudson.remoting.RemoteClassLoader.loadWithMultiClassLoader(RemoteClassLoader.java:277)at hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:236)at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)at java.base/java.lang.Class.forName0(Native Method)at java.base/java.lang.Class.forName(Class.java:398)at hudson.remoting.MultiClassLoaderSerializer$Input.resolveClass(MultiClassLoaderSerializer.java:133)at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1886)at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1772)at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2060)at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1594)at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)at hudson.remoting.UserRequest.deserialize(UserRequest.java:312)at hudson.remoting.UserRequest.perform(UserRequest.java:196)at hudson.remoting.UserRequest.perform(UserRequest.java:50)at hudson.remoting.Request$2.run(Request.java:391)at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:81)at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.UnsupportedClassVersionError: hudson/slaves/SlaveComputer$SlaveVersion has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0at java.base/java.lang.ClassLoader.defineClass1(Native Method)at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:877)at hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:470)... 22 moreAgent JVM has not reported exit code. Is it still running?
[02/21/25 14:14:10] Launch failed - cleaning up connection
[02/21/25 14:14:10] [SSH] Connection closed.
ERROR: Connection terminated
上面日志 cd "C:\Jenkins_2" && java -jar remoting.jar -workDir C:\Jenkins_2 -jar-cache C:\Jenkins_2/remoting/jarCache 执行已经成功了,下面还有报错
找到日志中
Caused by: java.lang.UnsupportedClassVersionError: hudson/slaves/SlaveComputer$SlaveVersion has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
这表明当前使用的 Java 运行时只能处理到 class 文件版本 55.0,而 Jenkins 代码则是用 class 文件版本 61.0 编译的
根据 Java 的版本对应关系:
Class file version 61.0 对应 Java 17
Class file version 55.0 对应 Java 11
因此,这个错误的解决方案是确保 Jenkins 节点 也就是 Windows 使用 Java 17 或更高版本来运行,安装 JDK17
相关文章:
Jenkins 创建 Node 到 Windows
Jenkins 创建 Node 到 Windows 一. 新建 Node Dashboard -> Manage Jenkins -> Manage Nodes and Clouds Dashboard -> Nodes -> New Node 二. 配置节点 Node:节点名 Description:节点描述 Number of executors:节点最大同…...
halcon机器视觉深度学习对象检测,物体检测
目录 效果图操作步骤软件版本halcon参考代码本地函数 get_distinct_colors()本地函数 make_neighboring_colors_distinguishable() 效果图 操作步骤 首先要在Deep Learning Tool工具里面把图片打上标注文本, 然后训练模型,导出模型文件 这个是模型 mod…...
【分布式数据一致性算法】Gossip协议详解
在分布式系统中,多个节点同时提供服务时,数据一致性是核心挑战。在多个节点中,若其中一个节点的数据发生了修改,其他节点的数据都要进行同步。 一种比较简单粗暴的方法就是 集中式发散消息,简单来说就是一个主节点同时…...
蓝桥杯笔记——递归递推
递归 0. 函数的概念 我们从基础讲起,先了解函数的概念,然后逐步引入递归,帮助同学们更好地理解递归的思想和实现方式。 函数是程序设计中的一个基本概念,简单来说,它是一段封装好的代码,可以在程序中多次…...
Vue 3 + Vite 项目中配置代理解决开发环境中跨域请求问题
在 Vue 3 Vite 项目中,配置代理是解决开发环境中跨域请求问题的常见方法。通过在 Vite 的配置文件中设置代理,可以将前端请求转发到后端服务器,从而避免浏览器的同源策略限制。 1. 创建 Vue 3 Vite 项目 首先,确保你已经安装了…...
【复现DeepSeek-R1之Open R1实战】系列7:GRPO原理介绍、训练流程和源码深度解析
【复现DeepSeek-R1之Open R1实战】系列博文链接: 【复现DeepSeek-R1之Open R1实战】系列1:跑通SFT(一步步操作,手把手教学) 【复现DeepSeek-R1之Open R1实战】系列2:没有卡也能训模型!Colab跑Op…...
【Qt】可爱的窗口关闭确认弹窗实现
文章目录 实现思路界面构建交互逻辑实现颜色渐变处理圆形部件绘制 代码在主窗口的构造函数中创建弹窗实例ExitConfirmDialog 类代码ColorCircleWidget 类代码 今天在Qt实现了这样一个可互动的窗口(上图由于录屏工具限制没有录制到鼠标) 实现…...
服务器通过 ollama 运行deepseek r1
1、服务器环境简介 56核 CPU64G 内存无显卡已安装 Ollama 2、下载模型与配置 正常可以通过 ollama pull 或 ollama run 命令直接下载,但通常会遇到连接超时、找不到网址等总理。因此,可以使用国内的模型站进行下载,在这里使用魔塔查找模型…...
计算机毕业设计SpringBoot+Vue.jst网上购物商城系统(源码+LW文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
自制操作系统前置知识汇编学习
今天要做什么? 为了更好的理解书中内容,需要学习下进制分析和汇编。 汇编语言其实应该叫叫机器指令符号化语言,目前的汇编语言是学习操作系统的基础。 一:触发器 电路触发器的锁存命令默认是断开的,是控制电路触发器…...
Unity制作游戏——前期准备:Unity2023和VS2022下载和安装配置——附安装包
1.Unity2023的下载和安装配置 (1)Unity官网下载地址(国际如果进不去,进国内的官网,下面以国内官网流程为例子) unity中国官网:Unity中国官网 - 实时内容开发平台 | 3D、2D、VR & AR可视化 …...
深度学习(5)-卷积神经网络
我们将深入理解卷积神经网络的原理,以及它为什么在计算机视觉任务上如此成功。我们先来看一个简单的卷积神经网络示例,它用干对 MNIST数字进行分类。这个任务在第2章用密集连接网络做过,当时的测试精度约为 97.8%。虽然这个卷积神经网络很简单…...
LeetCodehot 力扣热题100 课程表
题目背景 这个问题要求我们判断是否可以完成所有课程的学习。每门课程可能依赖其他课程作为前置课程,构成了一个有向图。我们需要确定是否存在环,若存在环,说明课程之间互相依赖,无法完成所有课程;如果不存在环&#x…...
彻底卸载kubeadm安装的k8s集群
目录 一、删除资源 二、停止k8s服务 三、重置集群 四、卸载k8s安装包 五、清理残留文件和目录 六、删除k8s相关镜像 七、重启服务器 一、删除资源 # 删除集群中的所有资源,包括 Pod、Deployment、Service,任意节点执行 kubectl delete --all pod…...
【HarmonyOS Next】拒绝权限二次申请授权处理
【HarmonyOS Next】拒绝权限二次申请授权处理 一、问题背景: 在鸿蒙系统中,对于用户权限的申请,会有三种用户选择方式: 1.单次使用允许 2.使用应用期间(长时)允许 3.不允许 当用户选择不允许后࿰…...
便携式动平衡仪Qt应用层详细设计方案(基于Qt Widgets)
便携式动平衡仪Qt应用层详细设计方案(基于Qt Widgets) 版本:1.0 日期:2023年10月 一、系统概述 1.1 功能需求 开机流程:长按电源键启动,全屏显示商标动画(快闪3~4次)。主界面&…...
2 20 数据开发面试题汇总
下面是我在实习中协助面试 然后在牛客上挑选了一些完整的面试问题借助豆包完成的面经答案思路汇总 滴滴数据研发日常实习 一面 数据仓库认识维度建模之外还有哪些建模,有什么区别项目中数据仓库分了哪几层,为什么要分层Hadoop架构,你这些组…...
跟着李沐老师学习深度学习(十四)
注意力机制(Attention) 引入 心理学角度 动物需要在复杂环境下有效关注值得注意的点心理学框架:人类根据随意线索和不随意线索选择注意力 注意力机制 之前所涉及到的卷积、全连接、池化层都只考虑不随意线索而注意力机制则显示的考虑随意…...
Websocket——心跳检测
1. 前言:为什么需要心跳机制? 在现代的实时网络应用中,保持客户端和服务端的连接稳定性是非常重要的。尤其是在长时间的网络连接中,存在一些异常情况,导致服务端无法及时感知到客户端的断开,可能造成不必要…...
基于YOLO11深度学习的半导体芯片缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】
《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...
Spring Boot3.x集成Flowable7.x(一)Spring Boot集成与设计、部署、发起、完成简单流程
一、Flowable简介 Flowable 是一个轻量级、开源的业务流程管理(BPM)和工作流引擎,旨在帮助开发者和企业实现业务流程的自动化。它支持 BPMN 2.0 标准,适用于各种规模的企业和项目。Flowable 的核心功能包括流程定义、流程执行、任…...
Dify 工作流分类器技巧
在使用 Dify 工作流中的分类器(如问题分类器,Question Classifier)时,想要实现高效且准确的分类,可以遵循以下技巧和最佳实践。这些建议基于 Dify 的工作流功能,帮助你更好地设计和优化分类过程:…...
网络安全-openssl工具
OpenSSl是一个开源项目,包括密码库和SSL/TLS工具集。它已是在安全领域的事实标准,并且拥有比较长的历史,现在几乎所有的服务器软件和很多客户端都在使用openssl,其中基于命令行的工具是进行加密、证书管理以及测试最常用到的软件。…...
【Web开发】PythonAnyWhere免费部署Django项目
PythonAnyWhere免费部署Django项目 文章目录 PythonAnyWhere免费部署Django项目将项目上传到GitHub从GitHub下载Django项目创建Web应用配置静态文件将项目上传到GitHub 打开项目,输入以下命令,生成Django项目依赖包。pip list --format=freeze > requirements.txt打开Git …...
Spring Boot 多模块怎么统一管理
在 Spring Boot 中,多模块项目是一种常见的架构模式,尤其适用于构建大型、复杂的应用程序。将应用程序拆分成多个模块可以提高代码的可维护性、可重用性和团队协作效率。然而,多模块项目也带来了一些管理上的挑战,例如依赖版本管理…...
视频的分片上传
分片上传需求分析: 项目中很多地方需要上传视频,如果视频很大,上传到服务器需要很多时间 ,这个时候体验就会很差。所以需要前端实现分片上传的功能。 要实现分片上传,需要对视频进行分割,分割成不同的大小…...
Moonshot AI 新突破:MoBA 为大语言模型长文本处理提效论文速读
前言 在自然语言处理领域,随着大语言模型(LLMs)不断拓展其阅读、理解和生成文本的能力,如何高效处理长文本成为一项关键挑战。近日,Moonshot AI Research 联合清华大学、浙江大学的研究人员提出了一种创新方法 —— 混…...
Deepseek首页实现 HTML
人工智能与未来:机遇与挑战 引言 在过去的几十年里,人工智能(AI)技术取得了突飞猛进的发展。从语音助手到自动驾驶汽车,AI 正在深刻地改变我们的生活方式、工作方式以及社会结构。然而,随着 AI 技术的普及…...
AI革命下的多元生态:DeepSeek、ChatGPT、XAI、文心一言与通义千问的行业渗透与场景重构
前言 人工智能技术的爆发式发展催生了多样化的AI模型生态,从通用对话到垂直领域应用,从数据挖掘到创意生成,各模型凭借其独特的技术优势与场景适配性,正在重塑全球产业格局。本文将以DeepSeek、ChatGPT、XAI(可解释人…...
VS2022配置FFMPEG库基础教程
1 简介 1.1 起源与发展历程 FFmpeg诞生于2000年,由法国工程师Fabrice Bellard主导开发,其名称源自"Fast Forward MPEG",初期定位为多媒体编解码工具。2004年后由Michael Niedermayer接任维护,逐步发展成为包含音视频采…...
