VMware中的三种虚拟网络模式

虚拟机网络模式

  • 1 主机网络环境
  • 2 VMware中的三种虚拟网络模式
    • 2.1 桥接模式
      • NAT模式
      • 仅主机模式
      • 网络模式选择
        • 1 VMware虚拟网络配置
        • 2 虚拟机选择网络模式
        • 3 Windows主机网络配置
    • 配置静态IP

虚拟机联网方式为桥接模式,这种模式下,虚拟机通过主机的物理网卡,直接连接到主机所在的网络当中。具体效果如下图所示。
在这里插入图片描述
这种模式下存在两个痛点

  1. 主机必须连接到某个网络中,主机和虚拟机才能互通。
  2. 更换网络后,主机和虚拟机的IP地址均会发生变化,因此远程访问工具中的IP需要同步进行修改。

为解决上述痛点,我们需要调整虚拟机的网络模式和配置静态IP。

1 主机网络环境

为理解VMware中的虚拟网络模式,我们首先需要明确主机所处的真实网络环境,其所处环境如下图所示:
在这里插入图片描述
如上图所示,路由器一端(WAN口(广域网口),Wide Area Network)连接互联网,另一端(Local Area Network,LAN(局域网口))连接多个需要上网的设备,这些设备组成一个局域网,局域网中的设备都通过路由器访问互联网,这个场景应该是大家十分熟悉的。
同时,我们的上网的设备还可以通过无线的方式连接到路由器上,通过无线网连接到路由器上的设备和通过有线的LAN接口连接到无线网上的设备都是处于同一个局域网当中的。

以下是一般家用的路由器图:
在这里插入图片描述
还有一个需要我们熟悉的是,假如现在我们需要有线上网的设备比较多,而支持有线上网的LAN接口只有4个
,那其余需要上网的设备如何才能通过路由器进行上网呢(这里假设不能通过无线的方式连接到路由器)?

这个时候我们就需要使用另外一个网络设备来解决这个问题,那就是交换机,如下:
在这里插入图片描述
如上就是一个家用小型的交换机,在它上面也存在多个网络接口,可以把这些网络接口认为是LAN接口,这样我们就可以使用交换机去扩展路由器上的LAN接口,那如何去扩展呢?
我们可以使用一根网线,网线的一端插在路由器的某一个LAN口上,另一端插在交换机的一个接口上。这样就相当于由路由器上的一个LAN口,扩展为4个LAN口。并且需要注意的是,直接接在路由器上的上网设备和通过扩展接在交换机上的上网设备也是处于同一个局域网当中的。

下面为大家介绍路由器中的两个十分重要的角色。

  • DHCP

    全称Dynamic Host Configuration Protocol ,动态主机配置协议,该协议用于给联网的设备自动分配(私网)IP地址和其他网络配置。家用路由器中一般就会集成DHCP服务,因此设备只要连接上路由器,便能自动获取IP地址等网络配置。

可以登录一下自己家的路由器管理界面,地址一般为:192.168.1.1
在这里插入图片描述
DHCP会维护一个IP地址池2-254,每当一个新的上网设备连接到路由器上后,这个DHCP服务会从地址池当中抽选一个ip给上网的设备。
这就是为什么我们的主机也好,还是其他的上网设备也好,连接到新的网络之后,ip地址都会变,原因就是,路由器当中DHCP服务维护的IP地址池是不一样的。

  • NAT

    全称Network Address Translation,网络地址转换,该技术主要用于缓解IPv4地址短缺,有了NAT之后,可以令多个网络设备共享一个公网IP地址,家庭路由器中也都集成了该服务。

    其工作原理是,NAT设备(路由器)一端连接互联网,其具有一个公网IP(路由器也具有一个公网IP),另一端连接一个局域网,局域网中的每个设备均只有一个私网IP。当局域网中的设备经过路由器向互联网中的其他设备发送数据时,NAT服务会将数据包的源地址由该设备的私网IP替换为路由器的公网IP,因此互联网中的其他设备看到源地址为路由器的公网IP,所以其返回数据时,就会把路由器的公网IP设置为目标地址,路由器接收到数据之后,NAT设备再将数据的目标地址由路由器的公网IP改为原设备的私网IP,最终数据就能返回到该设备了。具体流程如下图所示
    在这里插入图片描述
    在对我们的主机所处的网络环境有了一个了解后,下面分别为大家介绍VMware中的三种网络模式。

2 VMware中的三种虚拟网络模式

2.1 桥接模式

这个桥接模式我们也一再提到,我们之前说,那它模拟出来的效果就是让虚拟机直接接入到这个主机所在的网络当中。或者说的直白一点,就是让虚拟机直接接入这个主机所在的路由器当中。没错,OK,但实际上这个说法离真相还是有一点距离的。

桥接模式的原理如下图所示
在这里插入图片描述

这种模式下,VMware虚拟出了一个交换机。首先,该虚拟交换机通过主机的物理网卡连接到主机所在的网络中,
然后所有的虚拟机都通过虚拟交换机接入到主机所在网络中。
所以在该模式下,虚拟机和主机位于同一网络中,因此在主机接入网络的前提下,虚拟机和物理机是可以互通的。

好,我们可以看一下这张图,那这个桥接模式下边VMware到底做了什么呢?实际上是这样的,它虚拟出了一个交换机。交换机的概念大家还记得吧?那我们前面是不是给大家简单介绍过一下?我们说这个交换机可以用来干啥?是不是可以用来扩展路由器的LAN口啊?
没错。好,那这儿VMware就虚拟出了一个这样的交换机,然后这个交换机它通过这个宿主机的物理网卡,连接到了路由器当中,其实就相当于接入到了路由器的一个LAN口,可以这么去理解,那这样一来路由器是不是就扩展出来了一系列的LAN口?好,然后所有的虚拟机其实并不是直接接入到这个路由器了,而是接入到了这个虚拟的交换机当中了。
那前面也提到过,那接入到这个虚拟机的这个设备和直接接入到路由器LAN口的设备,其实它们是位于同一个局域网下边了,对不对?那也就是说我们的主机和虚拟机是位于同一个局域网下的,那所以说这种情况下主机跟虚拟机之间,一定是可以进行通信的。
好了,那这就是VMware当中的这个桥接模式,真正的一个原理图。

NAT模式

NAT模式的原理如下图所示
在这里插入图片描述

这种模式下,VMware虚拟出了一个交换机,一个DHCP服务以及一个NAT服务,相当于构成了一个虚拟路由器。
虚拟路由器通过主机的物理网卡连接到主机所在的网络,虚拟机则全部连接到虚拟路由器上,组成了一个子网。
此时所有的虚拟机位于同一网络,因此彼此之间可以互通,但是主机不能与虚拟机互通。

为使主机能够和虚拟机互通,VMware又在主机中虚拟出了一个网卡,并连接到了这个虚拟路由器中,这时主机便可虚拟机互通了。

可以看到这个模式原理图看起来要复杂一些,对吧?那首先需要明确的一点,就是在这种模式下边, VMware它不仅虚拟出来了一个交换机,它还同时虚拟出来了一个 DHCP 服务以及一个 NAT 服务。好,那实际上这三者组合起来就相当于构成了一个虚拟的路由器,然后这个虚拟路由器的一端也就是它的WAN口,会通过这个宿主机,连接到这个真正的路由器的,相当于是它的一个WAN口上边。好了,然后所有的虚拟机都会接入到这个虚拟的路由器当中。
好,那这其实就相当于是我们这个虚拟路由器,那它又在真正的这个路由器的局域网下边又创建了一个子局域网。那这些虚拟机都位于这个子网内,那所以这种情况下虚拟机之间是可以互相通信的,那并且这个虚拟机也是可以访问互联网的。OK,那只不过它在访问互联网的时候,这个数据包会经过两次NAT的地址转换。一次是由这个虚拟路由器,由这个子网 IP 转换成这个局网的IP。好,那再有一次就是由这个真正的路由器当中的NAT,由这个局网的这个私网 IP 转换成互联网上面的一个公网IP。
然后有一个问题大家需要注意到,比如在当前的这个环境下边,我们的主机和虚拟机其实并不是位于同一个网络当中的,没问题,好,虚拟机实际上是位于这个虚拟路由器所创建的子网当中的,而主机现在是位于这个真正的路由器所创建的局域网当中的。好,那显然他们并没有处在同一级的网络当中,对吧?那所以说在这种情况下,这个主机是没有办法和这个虚拟机去进行互通的。
好,那为了让这个主机和虚拟机进行互通, VMware又做了一件事。他做什么事了呢?好,他在这个主机上边又虚拟出来了一个网卡,然后通过这个虚拟网卡接入到了这个虚拟的路由器当中。好了,那这样一来的话,这个宿主机是不是也就位于这个虚拟路由器所创建出来的子网当中了呀?对不对?也就是他和这个虚拟机目前就位于同一级网络里边了,这个时候那他们之间就可以毫无障碍地进行互相通信了。
好,那这个虚拟网卡呢?其实我们也能够看得到。好,那这个去哪看呢?给大家去看一下。在这里插入图片描述
那这个网卡实际上就会接入到我们刚所提到的这个虚拟的路由器当中。好,那也就是说我们目前这个主机在 NAT 模式下边,其实是处在两个网络当中的,一个是我们这个虚拟网络,还有一个是哪是咱们这个真正的物理网络,这一点大家要理解一下。

好,那至此这个 NAT 模式的原理我就介绍完毕了。
好,那接下来再请大家思考最后一个问题。好,大家想一想在 NAT 模式下边这个主机它如果不连接到某个网络的话,那主机和虚拟机之间是否还能完成相互通信?我们前面提到过说在桥机模式下边是不行的,如果主机不联网,那相当于虚机也没联网,对吧?两个独立的设备没有办法进行通信,对吧?好。但是在 NAT 模式下边它也是这样的吗?答案不是。OK。

在 NAT 模式下边,不管主机是否接入到某个网络当中,那我们的主机和虚拟机之间都可以进行相互通信,为什么呀?因为咱们看这个图就能看出来,对吧?好,如果这块他没有接入到某个网络当中,对吧?好,但是我这个虚拟路由器是不是还在,对不对?那我的主机,我的虚拟机是不是都接入到了这个虚拟的路由器当中了呀?那他们是不是就位于同一网络当中?那所以说它们之间进行相互通信是没有任何问题的。

OK,只不过说如果你主机它不接入到这个网络当中,那我们的虚拟机它没有办法去访问互联网而已。好了,那这就是 NAT 模式下边的一个特点,大家要理解。

仅主机模式

仅主机模式的原理如下图所示
在这里插入图片描述

这种模式,和NAT模式十分相似,唯一的区别是,虚拟路由器并未连接到主机所在的网络中,
因此主机和虚拟机之间可以互通,但是虚拟机不能访问互联网。

这个模式就非常非常的简单了。这是它的这个原理图,那这个仅主机模式其实和 NAT 模式十分相似。好,那它这儿也是虚拟出来了一个路由器,然后这些虚拟机也都会接入到这个路由器当中,那并且这个 VMware在主机当中也虚拟出来了一块网卡。OK,好,那这个网卡也接入到了这个虚拟的路由器当中。
好,然后其实我们也可以去看一下这个 VMware 虚拟出来的这块网卡。我们还是打开这个 Windows 主机的这个网络适配器这块,
在这里插入图片描述
对吧?它跟原来这个有区别,一个叫做 VMNET8,一个叫做 VMNET1。OK,需要给大家明确的一点,就是VMNET8这块虚拟网卡接入的是 NAT这个网络模式下的那个虚拟路由器,而 VMNET1它接入的是这个仅主机模式下边的这个虚拟路由器。

好了,那我们再回到这个原理图上面来,所以说那我们的主机和这个虚拟机是不是也是位于同一个局域网下边的,对吧?那所以说它们之间也是可以进行相互通信的,这个没有问题啊。
好了,那这个仅主机模式和 NAT 模式唯一的区别应该大家也发现了,就是啥?是不是就这个虚拟路由器,它并没有接入到这个真正的路由器当中,OK,那所以说在仅主机模式下边,我们的虚拟机是不能访问互联网的。
好了,那这就是仅主机模式的特点,那所谓的仅主机呢?其实现在大家也能理解了,是不是就是我们的虚拟机,它只能和这个主机进行网络通信,不能和互联网上的其他设备进行通信。

那至此VMware的三种网络模式就给大家介绍完毕了,那大家现在应该已经知道了他们各自的原理以及各自的特点了。好,那现在问大家一个问题,你说为了方便我们将来的学习或者是工作,对吧?那我们用哪种模式要更好一些呢?那实际上应该是不是 NAT 模式要更好一些,因为在 NAT 模式下边,不管主机是否联网,那我们的主机和虚拟机之间是不是都能够实现互通?那当然了,能实现这个效果的其实并不只有NAT,仅主机也行,对吧?仅主机,不管你主机是否联网,那主机和虚拟机是不是都位于这个虚拟网络当中,那所以说它们之间也都是能互通的。但是仅主机它有一个缺点。缺点就是你的虚拟机是没有办法去访问互联网的,对吧?没办法连接外网。

网络模式选择

为保证主机未联网的情况下,主机和虚拟机也能实现互通;同时保证主机联网的情况下虚拟机也能访问互联网,我们最好选择上述三种模式中的NAT模式,具体配置如下。

1 VMware虚拟网络配置
  1. 点击VMware菜单栏中的编辑,选择虚拟网络编辑器

在这里插入图片描述
2.打开虚拟网络编辑器后,赋予管理员权限
在这里插入图片描述
3.配置VMnet8子网
在这里插入图片描述
4.打开NAT配置界面
在这里插入图片描述
5.修改NAT配置
在这里插入图片描述
注意事项

NAT网关IP须位于VMnet8子网IP范围内。

2 虚拟机选择网络模式
  1. 修改虚拟机所使用的网络模式
    在这里插入图片描述
  2. 选择NAT模式
    在这里插入图片描述
3 Windows主机网络配置

上述配置中,VMware已将Windows主机连接到虚拟网络中了,此处只需查看Windows主机中的虚拟网络网卡配置是否正确即可。

  1. 打开网络适配器配置面板

    Win+R打开运行窗口,输入ncpa.cpl,然后按回车键

  2. 查看VMnet8虚拟网络适配器
    在这里插入图片描述

  3. 查看IpV4配置
    在这里插入图片描述
    注意事项
    主机IP须位于VMnet8子网IP范围内。

配置静态IP

NAT模式下,虚拟机的IP地址,默认情况下是由虚拟DHCP服务自动分配的,虚拟机的IP地址不固定,这对于SSH远程访问也不友好,所以通常情况下,我们不使用虚拟DHCP服务,而是手动为虚拟机配置静态的IP地址。具体操作如下。

  1. 确定网络配置文件

    在终端输入如下命令ifconfig命令,查看当前的网络接口,内容如下

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.100  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::5fdd:f01e:a4fb:966  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:fc:a3:fe  txqueuelen 1000  (Ethernet)
        RX packets 1526  bytes 136998 (133.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1907  bytes 136735 (133.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 68  bytes 5916 (5.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 68  bytes 5916 (5.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:ea:8a:fb  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  1. 其中ens33是目前的以太网接口,故其配置文件为vim /etc/sysconfig/network-scripts/ifcfg-ens33

  2. 修改网络配置文件

    打开配置文件

    [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
    

    内容如下

    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=dhcp
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens33
    UUID=bf788989-e095-4e58-865a-e6b07248a514
    DEVICE=ens33
    ONBOOT=yes
    

    需要修改的内容如下

    • 修改BOOTPROTO参数为static

    • 修改ONBOOT参数为yes

    • 增加如下内容

      IPADDR=192.168.10.100
      NETMASK=255.255.255.0
      GATEWAY=192.168.10.2
      DNS1=192.168.10.2
      

      注意事项

      IPADDR需要位于前文VMnet8子网IP范围内,GATEWAY需要配置为前文的NAT服务的网管IP。

  3. 重新启动网络服务

    在终端执行以下命令,重启network服务

    [root@localhost ~]# systemctl restart network
    
  4. 观察网络配置是否生效

    在终端执行ifoconfig命令,观察ens33的网络接口的IP地址是否为前文所配置的IPADDR

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mysql8.0-学习

文章目录 mysql8.0基础知识-学习安装mysql_8.0登录mysql8.0的体系结构与管理体系结构图连接mysqlmysql8.0的 “新姿势” mysql的日常管理用户安全权限练习查看用户的权限回收:revoke角色 mysql的多种连接方式socket显示系统中当前运行的所有线程 tcp/ip客户端工具基于SSL的安全…

2024最新boss直聘岗位数据爬虫,并进行可视化分析

前言 近年来,随着互联网的发展和就业市场的变化,数据科学与爬虫技术在招聘信息分析中的应用变得越来越重要。通过对招聘信息的爬取和可视化分析,我们可以更好地了解当前的就业市场动态、职位需求和薪资水平,从而为求职者和招聘企业提供有价值的数据支持。本文将介绍如何使…

Linux系统编程--进程间通信

目录 1. 介绍 1.1 进程间通信的目的 1.2 进程间通信的分类 2. 管道 2.1 什么是管道 2.2 匿名管道 2.2.1 接口 2.2.2 步骤--以父子进程通信为例 2.2.3 站在文件描述符角度-深度理解 2.2.4 管道代码 2.2.5 读写特征 2.2.6 管道特征 2.3 命名管道 2.3.1 接口 2.3.2…

【驱动篇】龙芯LS2K0300之i2c设备驱动

实验背景 由于官方内核i2c的BSP有问题&#xff08;怀疑是设备树这块&#xff09;&#xff0c;本次实验将不通过设备树来驱动aht20&#xff08;i2c&#xff09;模块&#xff0c;大致的操作过程如下&#xff1a; 模块连接&#xff0c;查看aht20设备地址编写device驱动&#xff…

K8S之网络深度剖析(一)(持续更新ing)

K8S之网络深度剖析 一 、关于K8S的网络模型 在K8s的世界上,IP是以Pod为单位进行分配的。一个Pod内部的所有容器共享一个网络堆栈(相当于一个网络命名空间,它们的IP地址、网络设备、配置等都是共享的)。按照这个网络原则抽象出来的为每个Pod都设置一个IP地址的模型也被称作为I…

忍法:声音克隆之术

前言&#xff1a; 最近因为一直在给肚子里面的宝宝做故事胎教&#xff0c;每天&#xff08;其实是看自己心情抽空讲下故事&#xff09;都要给宝宝讲故事&#xff0c;心想反正宝宝也看不见我&#xff0c;只听我的声音&#xff0c;干脆偷个懒&#xff0c;克隆自己的声音&#xf…

信息学奥赛初赛天天练-40-CSP-J2021基础题-组合数学-缩倍法、平均分组、2进制转10进制、面向过程/面向对象语言应用

PDF文档公众号回复关键字:20240630 2021 CSP-J 选择题 单项选择题&#xff08;共15题&#xff0c;每题2分&#xff0c;共计30分&#xff1a;每题有且仅有一个正确选项&#xff09; 1.以下不属于面向对象程序设计语言是( ) A. C B. Python C. Java D. C 2.以下奖项与计…

R包的4种安装方式及常见问题解决方法

R包的4种安装方式及常见问题解决方法 R包的四种安装方式1. install.packages()2. 从Bioconductor安装3. 从本地源码安装4. 从github安装 常见问题的解决1. 版本问题2. 网络/镜像问题3.缺少Rtools R包的四种安装方式 1. install.packages() 对于R自带的包的安装一般都可以通过…

HarmonyOS--路由管理--组件导航 (Navigation)

文档中心 什么是组件导航 (Navigation) &#xff1f; 1、Navigation是路由容器组件&#xff0c;一般作为首页的根容器&#xff0c;包括单栏(Stack)、分栏(Split)和自适应(Auto)三种显示模式 2、Navigation组件适用于模块内和跨模块的路由切换&#xff0c;一次开发&#xff0…

实现点击按钮导出页面pdf

在Vue 3 Vite项目中&#xff0c;你可以使用html2canvas和jspdf库来实现将页面某部分导出为PDF文档的功能。以下是一个简单的实现方式&#xff1a; 1.安装html2canvas和jspdf&#xff1a; pnpm install html2canvas jspdf 2.在Vue组件中使用这些库来实现导出功能&#xff1a;…

网线直连电脑可以上网,网线连tplink路由器上不了网

家里wifi网络连不上好几天了&#xff0c;用网线直连电脑可以上网&#xff0c;但网线连tplink路由器wan口上不了网&#xff0c;无Internet连接&#xff0c;网线连lan口可以电脑上网&#xff0c;手机上不了。 后来发现网线的主路由用的192.168.0.1&#xff0c;我的路由器wan口自…

在node环境使用MySQL

什么是Sequelize? Sequelize是一个基于Promise的NodeJS ORM模块 什么是ORM? ORM(Object-Relational-Mapping)是对象关系映射 对象关系映射可以把JS中的类和对象&#xff0c;和数据库中的表和数据进行关系映射。映射之后我们就可以直接通过类和对象来操作数据表和数据了, 就…

【大数据导论】大数据序言

各位大佬好 &#xff0c;这里是阿川的博客&#xff0c;祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 目录 数据概念及类型及可用及组织形式数据概念数据…

golang项目基于gorm框架从postgre数据库迁移到达梦数据库的实践

一、安装达梦数据库 1、登录达梦数据库官网&#xff0c;下载对应系统版本的安装包。 2、下载地址为&#xff1a;https://www.dameng.com/list_103.html 3、达梦数据库对大小写敏感&#xff0c;在安装初始化数据库实例时建议忽略大小写&#xff1b;具体安装教程可参考以下博客: …

python办公自动化之pandas

用到的库&#xff1a;pandas 实现效果&#xff1a;创建一张空白的表同时往里面插入准备好的数据 代码&#xff1a; import pandas # 准备好要写入的数据&#xff0c;字典格式 data{日期:[7.2,7.3],产品型号:[ca,ce],成交量:[500,600]} dfpandas.DataFrame(data) # 把数据写入…

Java代码基础算法练习-计算被 3 或 5 整除数之和-2024.06.29

任务描述&#xff1a; 计算 1 到 n 之间能够被 3 或者 5 整除的数之和。 解决思路&#xff1a; 输入的数字为 for 循环总次数&#xff0c;每次循环就以当前的 i 进行 3、5 的取余操作&#xff0c;都成立计入总数sum中&#xff0c;循环结束&#xff0c;输出 sum 的值 代码示例&…

QT加载安装外围依赖库的翻译文件后翻译失败的现象分析:依赖库以饿汉式的形式暴露单例接口导致该现象的产生

1、前提说明 QtClassLibaryDll是动态库,QtWidgetsApplication4是应用程序。 首先明确:动态库以饿汉式的形式进行单例接口暴露; 然后,应用程序加载动态库的翻译文件并进行全局安装; // ...QTranslator* trans = new QTranslator();//qDebug() << trans->load(&quo…

大模型系列:提示词管理

既然大模型应用的编程范式是面向提示词的编程&#xff0c;需要建立一个全面且结构化的提示词库&#xff0c; 对提示词进行持续优化也是必不可少的&#xff0c;那么如何在大模型应用中更好的管理提示词呢&#xff1f; 1. 提示词回顾 提示词在本质上是向大型语言模型&#xff08…

​Chrome插件:React Developer Tools为React开发调试而生

React Developer Tools 是什么? 它是允许在Chrome和Firefox开发者工具中检查React组件层次结构的扩展插件。 插件源码下载 源码下载地址:GitHub - facebook/react-devtools at v3 下载完成以后执行红框中的代码,下载react-devtools 源码,源码如下图所示: 插件打包 当前n…

【C++】 ——【模板初阶】——基础详解

目录 1. 泛型编程 1.1 泛型编程的概念 1.2 泛型编程的历史与发展 1.3 泛型编程的优势 1.4 泛型编程的挑战 2. 函数模板 2.1 函数模板概念 2.2 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 2.6 函数模板的特化 2.7 函数模板的使…