(二)编译原生SDK以及配置交叉编译链

文章目录

  • 编译原生SDK
    • LinuxSDK的安装
      • 第一步解压LinuxSDK
      • 第二步安装依赖软件
      • 第三步解压Buildroot的dl文件
    • Linux系统镜像编译、生成
      • 第一步 配置编译环境
      • 第二步 编译 LinuxSDK
        • 编译上面配置好的 环境配置
        • 编译 LinuxSDK
        • 配置内核选项
        • 配置 Buildroot
        • 编译 Qt 库
    • 编译生成 Linux 系统镜像
    • 局部编译
      • SPL 和 U-Boot 编译
      • 内核编译
      • 设备树镜像编译
      • 文件系统编译
      • 最后生成镜像
  • 配置交叉编译链
      • 第一步 找到交叉编译链的路径
      • 第二步 添加交叉编译链路径到环境变量中
      • 第三步 测试


编译原生SDK

LinuxSDK的安装

第一步解压LinuxSDK

找到创龙官方给的TLT113的SDK包,目录在:\TLT113-EVM(Buildroot-2019.02)_V1.8\4-软件资料\Linux\LinuxSDK下面的LinuxSDK-v2.5.tar 直接拷贝到Samba共享文件里面,Samba共享文件的建立参考博文,点击直接跳转:(一)开发环境搭建以及配置

拷贝如图:

在这里插入图片描述

执行解压命令:

tar -zxvf  example.tar.gz  -C /path/to/destination // 格式
tar -zxvf  LinuxSDK-v2.5.tar.gz  -C /home/zhua/SDK    // 实际书写  -C  C是大写的

进入解压的LinuxSDK可以看到如下:
请添加图片描述
内容说明:
请添加图片描述


第二步安装依赖软件

为什么要安装依赖软件:

即使 Linux SDK 包含了 U-BootLinux KernelBuildroot 的源码,构建这些组件仍然需要一些宿主机上的工具和库,即所谓的“依赖软件工具”。这是因为:

  1. 编译工具链

    • 构建 Linux 内核、用户空间应用程序和其他组件需要一个交叉编译工具链。虽然有些 SDK 可能自带工具链,但其他情况下你可能需要安装如 gccg++ 等编译器以及相关的开发库。
  2. 构建工具

    • 构建过程通常依赖于一系列的工具,例如 makecmakeautotools 等,用于解析 Makefile 或 CMakeLists.txt 文件并执行编译命令。此外,patchdiffsedgrep 等工具也可能在应用补丁或进行文本处理时用到。
  3. 版本控制系统

    • 如果你需要从源代码仓库(如 Git)拉取最新的源代码或补丁,那么相应的版本控制工具也是必需的。
  4. 辅助工具

    • 某些特定的构建任务可能还需要额外的工具,比如 flexbison 用于生成解析器,dtc(Device Tree Compiler)用于处理设备树源文件等。
  5. 依赖库

    • 构建过程中可能会用到一些宿主机上的库,例如 OpenSSL 库用于加密功能,或者 Python 库用于运行某些脚本。这些库通常不会包含在嵌入式系统的镜像中,但在构建期间是必要的。
  6. 调试工具

    • 开发和调试过程中可能需要用到 gdbstrace 等调试工具,这些工具同样需要预先安装在宿主机上。
  7. 文件系统工具

    • 创建根文件系统镜像时,可能需要使用特定的工具来创建或修改文件系统格式,例如 mkfs.ext4 用于创建 ext4 文件系统。
  8. 压缩和打包工具

    • 构建完成后,你可能需要用 targzipxz 等工具来打包生成的文件,或者使用 genimage 工具根据配置文件生成启动所需的镜像文件。

为了简化这个过程,许多 Linux SDK 提供了文档或脚本来指导用户安装这些依赖项。有时,SDK 会提供一个 setup.sh 或类似的脚本,它可以帮助自动检测并安装缺失的依赖项。如果你正在使用的 SDK 没有提供这样的帮助工具,你可以参考官方文档中的依赖列表,并按照说明安装必要的软件包。

总结,通俗来说说:只有源码没有工具怎么编译呢?所以必须安装各种编译时,所需要的依赖软件。


同样在官方资料里面也有如何安装工具包的脚本。

目录在:“\TLT113-EVM(Buildroot-2019.02)_V1.8\4-软件资料\Linux\Tools\”

在将目录下的工具包脚本文件 install_tools.sh 拷贝至 SDK工作目录下,执行脚本文件安装 LinuxSDK 开发包依赖软件。

同样也是借助Samba共享文件传入

请添加图片描述

然后拷贝到刚才创建的SDK目录下面,再执行脚本进行安装依赖软件

./install_tools.sh

中间会弹出对话框,选择NO即可。

请添加图片描述

安装完成如图:

请添加图片描述


第三步解压Buildroot的dl文件

为什么要解压Buildroot的dl文件:

关于 Buildroot dl 文件夹:
当你使用 Buildroot 构建一个项目时,它会下载所需的源代码包(如工具链、内核、BusyBox 等)到一个叫做 dl 的目录中。这个 dl 目录通常位于 Buildroot 项目的根目录下。该目录用于存放所有从互联网上下载的软件包的原始压缩文件(例如 .tar.gz, .tar.bz2 等格式)。这样做有以下几个好处:

  1. 避免重复下载:如果你需要重新构建或者在同一网络下的其他机器上进行构建,可以直接使用已经下载好的文件,而不需要再次从网上下载。
  2. 离线构建:一旦所有的依赖都下载完毕并存放在 dl 文件夹中,即使在没有网络连接的情况下也可以完成构建。

因此,Buildroot dl 文件夹是 Buildroot 用来缓存所下载的源代码包的地方,以方便后续的构建过程。如果你解压了一个 Buildroot 的归档文件,并且其中包含 dl 文件夹,那么意味着之前有人已经下载过这些文件,你可以利用它们来进行更快的构建。

说人话,就是提前将下载好的源代码包放在这个dl文件里面。
即便 SDK 包含了 U-Boot、Kernel 和 Buildroot 的源码,
但构建完整的根文件系统可能还需要其他库和工具。
这些额外的依赖项通常不在 SDK 中提供,仍然需要通过 Buildroot 下载并存储在 dl 文件夹中。有时资料包里面会提前下载好,节省编译时间。


dl文件目录在:“\TLT113-EVM(Buildroot-2019.02)_V1.8\4-软件资料\Linux\LinuxSDK\”目录下

再将目录下的 dl.tar.gz 压缩包拷贝至 SDK目录里面,同样是借助Samba共享文件

这里:dl.tar.gz 为 Buildroot dl 目录压缩包,用于存放从官网下载的开源软件包,LinuxSDK 编译时可从该目录获取开源包,以节约下载时间,提高编译效率,且能避免因网络环境差异导致编译 Buildroot 失败的问题。

拷贝如图:
请添加图片描述
解压到 /SDK/T113-i_v1.0/buildroot/buildroot-201902/ 下面去 这下面本来就有一个dl文件,此时正好覆盖了,dl此时里面已经下载好了很多依赖包

指令:

tar xvf dl.tar.gz -C ../SDK/T113-i_v1.0/buildroot/buildroot-201902/

请添加图片描述


Linux系统镜像编译、生成

第一步 配置编译环境

首先:进入 T113-i_v1.0 目录执行如下命令,清除所有编译和配置生成文件。

指令:

 ./build.sh distclean

请添加图片描述

执行如下命令,配置 Linux 内核、内核版本、处理器型号、评估板型号(tlt113-evm-emmc
)、显示方式、编译器等信息,当然可以配置nand版本,我个人适应emmc固化启动的。

./build.sh config

配置如下:

请添加图片描述

请添加图片描述

说明:
选择 gnueabi 将配置为软浮点编译器
选择 gnueabihf 将配置为硬浮点编译器

最后配置完成:

到这里只是配置好编译环境了,下面再进行编译。

请添加图片描述


第二步 编译 LinuxSDK

编译上面配置好的 环境配置
 source ./build/envsetup.sh

请添加图片描述

编译 LinuxSDK

LinuxSDK 源码包默认提供的是 Linux 内核源码,若对系统实时性要求较高,请先替换 Linux-RT 内核源码至 LinuxSDK,再进行编译。替换完成后,需要执行"./build.sh config"命令重新配置编译环境,否则会导致编译失败。

这里我们不需要,直接在 T113-i_v1.0 目录下执行如下命令,一键编译 SPL、U-Boot、Linux 内核和 buildroot文件系统

指令:

./build.sh

备注:
(1) 首次执行"./build.sh"命令编译 LinuxSDK,需再执行一次"./build.sh"命令,否则会
出现打包生成的 Linux 系统镜像在评估板无法正常启动的现象。
(2) 执行"./build.sh distclean"清除命令后,需执行两次"./build.sh"命令,否则会出现打
包生成的 Linux 系统镜像在评估板无法正常启动的现象。
也就是需要执行俩次./build.sh

请添加图片描述
等待时间不一致,这个根据电脑配置的不同,时间也不同。我编译了大概80分钟

最终编译完成如图:
请添加图片描述
生成 SPL、U-Boot、Linux 内核和 buildroot 文件系统镜像文件,镜像文件需转化为.fex 格式后使用

这些文件分别在:

(1) 生成 SPL 镜像文件为"out/t113_i/tlt113-evm-emmc/longan/"目录下的 boot0_nand_s
un8iw20p1.bin、boot0_sdcard_sun8iw20p1.bin 和 boot0_spinor_sun8iw20p1.bin。

请添加图片描述

(2) 生成 U-Boot 镜像文件为"out/t113_i/tlt113-evm-emmc/longan/u-boot-sun8iw20p1.bi
n"。

请添加图片描述

(3)生成 Linux 内核镜像文件为"out/t113_i/tlt113-evm-emmc/longan/boot.img"。

请添加图片描述

(4)生成文件系统镜像文件"out/t113_i/tlt113-evm-emmc/longan/rootfs.ext4",rootfs.
ext4 为 EXT4 格式,适用于 Micro SD 卡和 eMMC。如果用的是nand版本,对应的文件系统镜像为:rootfs.ubifs 为 UBIFS格式,适用于 NAND FLASH;
请添加图片描述

配置内核选项

(如果需要的情况下,一般默认,不需要管)

执行 ./build.sh 命令编译内核后,编译生成的相关文件会存放在"out/kernel/build/"目录下,含.config 内核配置文件,此时才能配置内核选项。在前面编译LinuxSDK的时候提供了直接替换的编译方式。

这里可以通过执行 make ARCH=arm menuconfig命令打开图形配置界面。此命令通过读取当前目录的.config 文件,以图形界面的方式提供内核编译配置查看和修改方法。修改完成,内容就会更新到.config文件中,再进行SDK的编译就可以了。

ARCH 是一个环境变量,用来指定目标架构(Architecture)
arm 表示你正在为目标是 ARM 架构的处理器编译代码

除了 arm,ARCH 变量还可以取其他值,具体取决于你想要编译的目标架构。例如:

1.x86 或 i386:用于传统的 32 位 Intel/AMD 处理器。
2.x86_64 或 amd64:用于 64 位 Intel/AMD 处理器。
3.mips:用于 MIPS 架构的处理器。
4.powerpc 或 ppc:用于 PowerPC 架构的处理器。
5.riscv:用于 RISC-V 架构的处理器。

总之,ARCH=arm 是告诉构建系统你希望为 ARM 架构编译代码,而 menuconfig 则提供了友好的界面来配置编译选项。


menuconfig:是一个交互式的配置工具,允许用户通过基于文本的菜单界面来选择 和 配置内核或项目的各种选项。它会打开一个图形化的终端界面,让你能够轻松地浏览和修改配置选项。但是需要 ncurses 库支持。ncurses 库提供了一系列的 API 函数供调用者生成基于文本的图形界面,因此需要先执行如下命令通过网络安装 ncurses 库。

安装ncurses库指令:

 sudo apt-get install libncurses5-devsudo apt-get install libncursesw5-dev

ncurses 库安装完成后,进入含有内核配置文件的目录“out/kernal/build”,执行指令:

 make ARCH=arm menuconfig 

进入图形界面进行内核编译配置查看和修改。

请添加图片描述

用键盘上下键移动,用回车表示确认。

这里左上角能明显看到是.config文件。

修改完Save 回车即可。

请添加图片描述
会提醒你修改的内容加载到.config文件中。

请添加图片描述

请添加图片描述

最后Exit即可。

请添加图片描述

配置完,一定要重新编译LinuxSDK。
配置完,一定要重新编译LinuxSDK。
配置完,一定要重新编译LinuxSDK。


配置 Buildroot

(如果需要的情况下,一般默认,不需要管)

如需修改 Buildroot 配置,和配置内核选项一样的操作。通过读取out/t113_i/tlt113-evm-emmc/longan/buildroot目录下的.config 文件,以图形界面的方式提供文件系统编译配置查看和修改。

先进入到buildroot目录里面。

再执行指令:

make menuconfig

请添加图片描述

以下操作同 配置内核选项 一样的操作

请添加图片描述
请添加图片描述
请添加图片描述

配置完,一定要重新编译LinuxSDK。
配置完,一定要重新编译LinuxSDK。
配置完,一定要重新编译LinuxSDK。


编译 Qt 库

若需编译生成支持 Qt 功能的 Linux 系统镜像(看需求我这里不许要就没有编译Qt库)

一定要回到./build.sh脚本所在目录执行指令哈。

指令:

./build.sh qt

请添加图片描述

编译完成:

请添加图片描述

然后一定要重新编译LinuxSDK。
然后一定要重新编译LinuxSDK。
然后一定要重新编译LinuxSDK。


编译生成 Linux 系统镜像

也是在./build.sh所在目录下操作的哈。

指令:

./build.sh pack

本次操作会:

将 SPL 镜像(boot0_nand_sun8iw20p1.bin、boot0_sdcard_sun8iw20p1.bin 和boot0_spinor_sun8iw20p1.bin)转化为boot0_sdcard.fex、boot0_nand.fex、boot0_spinor.fex 文件

将 U-Boot 镜像(u-boot-sun8iw20p1.bin)、设备树镜像、sys_config 配置文件合并生
boot_package.fex 文件

将 Linux 内核镜像(boot.img)转化为 boot.fex 文件

将文件系统镜像文件 rootfs.ext4 转化为 rootfs.fex 文件

最后将 boot0_sdcard.fex、boot0_nand.fex、boot0_spinor.fex、boot_package.fex、boot.fex、rootfs.fex 等文件,合并生成out/内的 t113_i_linux_tlt113-evm-emmc_uart0.img Linux 系统镜像文件。

如图:

请添加图片描述
请添加图片描述

boot0_sdcard.fex、boot0_nand.fex、boot0_spinor.fex、boot_package.fex、boot.fex、rootfs.fex 文件所在路径以及哪些文件转化而来的:

请添加图片描述

请添加图片描述

局部编译

SPL 和 U-Boot 编译

在 T113-i_v1.0 目录下执行如下命令,编译 SPL 和 U-Boot。

指令:

./build.sh brandy

同样编译完成后,生成 SPL 镜像文件为"out/t113_i/tlt113-evm-emmc/longan/“目录下的 bo
ot0_nand_sun8iw20p1.bin、boot0_sdcard_sun8iw20p1.bin 和 boot0_spinor_sun8iw20p1.bi
n。生成 U-Boot 镜像文件为"out/t113_i/tlt113-evm-emmc/longan/u-boot-sun8iw20p1.bin”。

请添加图片描述
请添加图片描述

最后直接./build.sh pack直接并包即可

内核编译

在 T113-i_v1.0 目录下执行如下命令,编译 Linux 内核。

./build.sh kernel

请添加图片描述

请添加图片描述

最后直接./build.sh pack直接并包即可

设备树镜像编译

我所用的板子支持分别支持 HDMI OUT、TFT LCD、MIPI LCD、LVDS LCD、CVBS 显示的设备树
文件;

如下表所示。其中“device/config/chips/t113_i/configs/tlt113-evm-emmc/linux-5.4/”目
录下存放 Linux 设备树源文件;

“device/config/chips/t113_i/configs/tlt113-evm-emmc/”目录下存放 U-Boot 设备树源文件(uboot-board-xxx.dts);

请添加图片描述

Linux 系统默认使用支持 HDMI OUT 显示的设备树文件。如需替换为其他显示方式,请进入 T113-i_v1.0 目录,执行如下命令,选择对应显示方式,并配置 Linux 内核、内核版本、处理器型号、评估板型号(tlt113-evm-emmc)、编译器等信息。

其实就是前面的 配置编译环境

./build.sh config

这里就不赘述了

注意这里需要编译LinuxSDK,才能将设备树编入其中。因为没有编译可以将设备树编入,所以直接总的一步操作

注意这里需要编译LinuxSDK,才能将设备树编入其中,不能简单并包
注意这里需要编译LinuxSDK,才能将设备树编入其中,不能简单并包
注意这里需要编译LinuxSDK,才能将设备树编入其中,不能简单并包

文件系统编译

在 T113-i_v1.0 目录下执行如下命令,编译文件系统。

 ./build.sh buildroot

请添加图片描述
请添加图片描述

最后生成镜像

说白了就是把前面LinuxSDK编译拆分了 ,其它步骤不变,最后还需要并包。注意设备树需要直接编译LinuxSDK,其他的局部编译直接并包即可

执行如下命令,将镜像文件转化为.fex 格式,并重新生成系统镜像。

./build.sh pack

请添加图片描述

请添加图片描述

注意所有的局部编译,除了设备树,其他均可直接./build.sh pack直接并包,设备树则需要编译LinuxSDK

注意所有的局部编译,除了设备树,其他均可直接./build.sh pack直接并包,设备树则需要编译LinuxSDK

注意所有的局部编译,除了设备树,其他均可直接./build.sh pack直接并包,设备树则需要编译LinuxSDK

配置交叉编译链

由于嵌入式设备不支持直接再本机上编译,因此要在宿主机上面进行编译,所以必须配置交叉编译链。

上面已经编译好了LinuxSDK,编译生成了交叉编译链,下面进行配置:

第一步 找到交叉编译链的路径

在 /home/zhua/SDK/T113-i_v1.0/out/t113_i/tlt113-evm-emmc/longan/buildroot/host/usr/bin 下

请添加图片描述
请添加图片描述

此时只能在这个目录下使用交叉编译链在其他目录下不可使用因此必须把交叉编译链路径配置到环境变量中

第二步 添加交叉编译链路径到环境变量中

添加交叉编译链路径到环境变量中是为了交叉编译链永久有效,并且在任意家目录下都可以直接使用

查看当前环境变量:

echo $PATH

请添加图片描述

下面把交叉编译链的路径加入到环境变量中:

sudo vi ~/.bashrc

添加如下指令:

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-gcc
export PATH=$PATH:/home/zhua/SDK/T113-i_v1.0/out/t113_i/tlt113-evm-emmc/longan/buildroot/host/usr/bin

说明:

export ARCH=arm / /编译ARM架构的属性
export CROSS_COMPILE=arm-linux-gnueabi-gcc // 就是对应的交叉编译工具名字
export PATH=$PATH:/home/zhua/SDK/T113-i_v1.0/out/t113_i/tlt113-evm-emmc/longan/buildroot/host/usr/bin // 交叉编译工具所在路径

其实你不写前俩条也是ok的(亲测)

请添加图片描述
按ese 再按:wq 退出保存。

然后执行指令:这条命令是加载这些设置的环境变量

 source  ~/.bashrc

此时再用指令:echo $PATH查看到环境变量为:

请添加图片描述

注意注意 此时要新开一个命令终端,全局的环境变量才生效
注意注意 此时要新开一个命令终端,全局的环境变量才生效
注意注意 此时要新开一个命令终端,全局的环境变量才生效

第三步 测试

在任何家目录下面,提前写好了一的demo.c,然后直接用arm-linux-gnueabi-gcc 交叉编译工具编译demo.c

指令:

arm-linux-gnueabi-gcc demo.c

同时用gcc 编译 demo.c

指令:

gcc demo.c  -o  b.out

可以看到编译出来的a.out可执行文件是ARM架构的。b.out可执行文件是x86架构的。

再执行,可以看到只有x86架构才能在Ubuntu系统上运行,ARM架构需要在ARM平台运行。

请添加图片描述

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

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

相关文章

分布式算法(五):初识ZAB协议

文章目录 一、什么是Zookeeper二、ZAB与Zookeeper的关系为什么Zookeeper不直接使用Paxos 三、ZAB简介1.名词解释提案(Proposal)事务(Transaction)原子广播(Atomic Broadcast) 2.集群角色领导者(…

RabbitMQ基础篇之Java客户端 Topic交换机

文章目录 Topic 交换机概述 Routing Key 与 Binding Key优缺点及场景优点缺点应用场景 案例演示创建队列和交换机:消费者代码:消息发送代码:测试: 总结 Topic 交换机概述 路由机制: Topic交换机与Direct交换机类似&am…

开源模型应用落地-LangChain实用小技巧-使用各种Loader高效解析不同数据源(七)

一、前言 在 LangChain框架中,提供了Loader机制,以统一的方式来从各种数据源获取数据,使得开发人员可以方便地集成不同类型的数据源,而无需为每种数据源编写特定的加载代码。它可以将不同格式的数据转换为 LangChain 可以处理的统…

SSRF服务端请求Gopher伪协议白盒测试

前言 是什么SSRF? 这个简单点说就是 服务端的请求伪造 就是这个如果是个 请求图片的网站 他的目的是请求外部其他网站的 图片 但是 SSRF指的是让他请求本地的图片 再展示出来 请求的是他的服务器上的图片 SSRF(Server-Side Request Forgery:服务器端请求伪造) …

数据可视化-16. 日历图

目录 1. 日历图的概念 2. 日历图的适用场景 2.1 事件或活动的频率分析 2.2 数据的时间周期性分析 2.3 异常值检测 2.4 绩效监控 3. 日历图的缺陷 3.1 粒度受限于天数 3.2 数据密度过高时候难以解读 3.3 难以比较多个数据集 3.4 周期性较长的数据不易展示 4. 日历图…

Flink源码解析之:如何根据JobGraph生成ExecutionGraph

Flink源码解析之:如何根据JobGraph生成ExecutionGraph 在上一篇Flink源码解析中,我们介绍了Flink如何根据StreamGraph生成JobGraph的流程,并着重分析了其算子链的合并过程和JobGraph的构造流程。 对于StreamGraph和JobGraph的生成来说&…

LeetCode算法题——有序数组的平方

题目描述 给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 题解 解法一:暴力解法 思路: 该题目可通过暴力解法解决,即利用for循环遍历数组,对数组每…

【Python】FastAPI之SQLAlchemy、关联关系

第四节:SQLAlchemy操作数据库 一、SQLAlchemy介绍 SQLAlchemy 是一个功能强大且灵活的 Python SQL 工具包及对象关系映射(ORM)库,它提供了全面的数据库访问抽象层。通过 SQLAlchemy,开发者可以使用 Python 代码来定义…

GRAPE——RLAIF微调VLA模型:通过偏好对齐提升机器人策略的泛化能力(含24年具身模型汇总)

前言 过去的这两年,工作之余,我狂写大模型与具身的文章,加之具身大火,每周都有各种朋友通过CSDN私我及我司「七月在线」寻求帮助/指导(当然,也欢迎各大开发团队与我司合作共同交付): 要么是做…

基于 LangChain 实现数据库问答机器人

基于 LangChain 实现数据库问答机器人 一、简介二、应用场景三、实战案例1、需求说明2、实现思路3、对应源码 一、简介 在 Retrieval 或者 ReACT 的一些场景中,常常需要数据库与人工智能结合。而 LangChain 本身就封装了许多相关的内容,在其官方文档-SQ…

Kali 自动化换源脚本编写与使用

1. 背景与需求 在使用 Kali Linux 的过程中,软件源的配置对系统的更新与软件安装速度至关重要。 Kali 的默认官方源提供了安全且最新的软件包,但有时由于网络条件或地理位置的限制,使用官方源可能会出现速度较慢的问题。 为了解决这一问题&a…

1Panel自建RustDesk服务器方案实现Windows远程macOS

文章目录 缘起RustDesk 基本信息实现原理中继服务器的配置建议 中继服务器自建指南准备服务器安装1Panel安装和配置 RustDesk 中继服务防火墙配置和安全组配置查看key下载&安装&配置客户端设置永久密码测试连接 macOS安装客户端提示finder写入失败hbbs和hbbr说明**hbbs…

Maple软件的安装和使用

文章目录 1.前言说明2.我为什么要学习Maple3.软件的安装4.如何使用4.1基本的赋值语句4.2函数的定义4.3三个类型的书写介质 5.指数运算5.1使用面板5.2自己输入 6.对数的使用 1.前言说明 众所周知,我虽然是一名这个计算机专业的学生,但是我对于数学&#…

Nacos配置中心总结

Nacos配置中心总结 Nacos配置文件的加载顺序和优先级 加载顺序 nacos作为配置中心时,需要在bootstrap.yml文件中添加nacos config相关的配置,这样系统启动时就能先去拉取nacos server上的配置了。拉取过来后会和本地配置文件进行合并。 bootstrap.ym…

Java开发-后端请求成功,前端显示失败

文章目录 报错解决方案1. 后端未配置跨域支持2. 后端响应的 Content-Type 或 CORS 配置问题3. 前端 request 配置问题4. 浏览器缓存或代理问题5. 后端端口未被正确映射 报错 如下图,后端显示请求成功,前端显示失败 解决方案 1. 后端未配置跨域支持 …

springboot523基于Spring Boot的大学校园生活信息平台的设计与实现(论文+源码)_kaic

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本大学校园生活信息平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据…

【Ubuntu使用技巧】Ubuntu22.04无人值守Crontab工具实战详解

一个愿意伫立在巨人肩膀上的农民...... Crontab是Linux和类Unix操作系统下的一个任务调度工具,用于周期性地执行指定的任务或命令。Crontab允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。这些任务可以按照分钟、小时、日…

Linux(14)——网络管理

目录 一、检测网络配置: 1、查看网络接口(ip): 2、查看性能(ip): 3、查看 IP 地址(ip): 4、查看路由表(ip): 5、追踪…

《机器学习》——线性回归模型

文章目录 线性回归模型简介一元线性回归模型多元线性回归模型误差项分析一元线性模型实例完整代码 多元线性模型实例完整代码 线性回归模型简介 线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。 相关关系&…

GeoTrust True BusinessID Wildcard

GeoTrust由DigiCert 提供支持,是最受信任和尊重的品牌之一,以提供高保证的网站安全而闻名。 GeoTrust True BusinessID通配符证书 – 以低成本保护多个主机名。即使将其用于您的公司主页或电子邮件服务器主机名,保护所有敏感信息也是您的目标…