当前位置: 首页 > news >正文

Ubuntu 22.04 源码下载的几种方法

1、查询当前系统内核版本

root@ubuntu22:~# uname -r
5.15.0-118-generic

2、查询本地软件包数据库中的内核源码信息

root@ubuntu22:~# apt search linux-source
Sorting... Done
Full Text Search... Done
linux-source/jammy-updates,jammy-security,now 5.15.0.119.119 all [installed]Linux kernel source with Ubuntu patcheslinux-source-5.15.0/jammy-updates,jammy-security,now 5.15.0-119.129 all [installed,automatic]Linux kernel source for version 5.15.0 with Ubuntu patcheslinux-source-5.19.0/jammy-updates,jammy-security 5.19.0-50.50 allLinux kernel source for version 5.19.0 with Ubuntu patcheslinux-source-6.2.0/jammy-updates,jammy-security 6.2.0-39.40~22.04.1 allLinux kernel source for version 6.2.0 with Ubuntu patcheslinux-source-6.5.0/jammy-updates 6.5.0-45.45~22.04.1 allLinux kernel source for version 6.5.0 with Ubuntu patches

3、apt source 与 apt install

3.1 apt source

将内核源码下载到当前目录并自动解压,提供了更完整的源代码包,包括 Ubuntu 特定的修改。
(1)apt source linux
安装仓库中最新可用的内核源代码版本
linux总是可用的,指向最新通用版本
(2)apt source linux-image-$(uname -r)
获取与当前运行的内核版本完全匹配的源代码
并非所有版本在仓库中都有对应的 linux-image-$(uname -r)包

3.2 apt install

将内核源码下载到/usr/src目录,安装的是一个"原始"的源代码包,可能需要额外的步骤来应用 Ubuntu 特定的补丁。
(1)apt install linux-source
安装仓库中最新可用的内核源代码版本
linux-source 包总是可用的,指向最新版本
(2)apt install linux-source-<version>
安装指定版本的内核源代码
并非所有版本都有对应的 linux-source-<version> 包
5.15.0-118-generic,version=5.15.0,将下载 5.15 系列的通用源码。
如要精确匹配 5.15.0-118-generic 版本,需要额外下载 Ubuntu 特定的补丁。

4、apt下载源码

(1)apt source linux

root@ubuntu22:~# apt source linux
Reading package lists... Done
NOTICE: 'linux' packaging is maintained in the 'Git' version control system at:
git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
Please use:
git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
to retrieve the latest (possibly unreleased) updates to the package.
eed to get 206 MB of source archives.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (dsc) [7,799 B]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (tar) [195 MB]
Get:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (diff) [10.5 MB]                    
Fetched 206 MB in 49s (4,168 kB/s)                                                                                           
dpkg-source: info: extracting linux in linux-5.15.0
dpkg-source: info: unpacking linux_5.15.0.orig.tar.gz
dpkg-source: info: applying linux_5.15.0-121.131.diff.gzroot@ubuntu22:~# ll
total 200708
drwxr-xr-x  3 root root      4096 Sep 13 06:32 ./
drwx------  6 root root      4096 Sep 13 06:23 ../
drwxr-xr-x 28 root root      4096 Sep 13 06:32 linux-5.15.0/
-rw-r--r--  1 root root  10533549 Aug 12 13:17 linux_5.15.0-121.131.diff.gz
-rw-r--r--  1 root root      7799 Aug 12 13:17 linux_5.15.0-121.131.dsc
-rw-r--r--  1 root root 194969557 Nov 18  2021 linux_5.15.0.orig.tar.gzroot@ubuntu22:~# cat linux-5.15.0/Makefile
...
VERSION = 5
PATCHLEVEL = 15
SUBLEVEL = 163
EXTRAVERSION =
NAME = Trick or Treat
...

(2)apt source linux-image-$(uname -r)

root@ubuntu22:~# apt source linux-image-$(uname -r)
Reading package lists... Done
Picking 'linux-signed' as source package instead of 'linux-image-5.15.0-118-generic'
Need to get 26.4 kB of source archives.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux-signed 5.15.0-121.131 (dsc) [2,370 B]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux-signed 5.15.0-121.131 (tar) [24.1 kB]
Fetched 26.4 kB in 1s (51.3 kB/s)       
dpkg-source: info: extracting linux-signed in linux-signed-5.15.0
dpkg-source: info: unpacking linux-signed_5.15.0-121.131.tar.xzroot@ubuntu22:~# ll
total 40
drwxr-xr-x 3 root root  4096 Sep 13 06:49 ./
drwx------ 6 root root  4096 Sep 13 06:44 ../
drwxr-xr-x 3 root root  4096 May 27 13:50 linux-signed-5.15.0/
-rw-r--r-- 1 root root  2370 Aug 12 13:17 linux-signed_5.15.0-121.131.dsc
-rw-r--r-- 1 root root 24076 Aug 12 13:17 linux-signed_5.15.0-121.131.tar.xzroot@ubuntu22:~# ll linux-signed-5.15.0/
total 24
drwxr-xr-x 3 root root 4096 May 27 13:50 ./
drwxr-xr-x 3 root root 4096 Sep 13 06:49 ../
drwxr-xr-x 6 root root 4096 Aug  9 08:16 debian/
-rwxr-xr-x 1 root root 6988 May 23 15:13 download-signed*
-rwxr-xr-x 1 root root  450 May 23 15:13 download-unsigned*root@ubuntu22:~# ll linux-signed-5.15.0/debian/
total 180
drwxr-xr-x 6 root root   4096 Aug  9 08:16 ./
drwxr-xr-x 3 root root   4096 May 27 13:50 ../
drwxr-xr-x 3 root root   4096 Aug  1 13:01 ancillary/
-rw-r--r-- 1 root root 121300 Aug  9 08:16 changelog
-rw-r--r-- 1 root root      2 Apr 25 14:35 compat
-rw-r--r-- 1 root root   1949 Aug  9 08:16 control
-rw-r--r-- 1 root root    277 Aug  6 13:11 control.stub
-rw-r--r-- 1 root root   1456 Nov 14  2023 copyright
-rw-r--r-- 1 root root    163 Aug  6 13:11 package.config
-rwxr-xr-x 1 root root   5693 Aug  6 13:11 rules*
drwxr-xr-x 3 root root   4096 Aug  6 13:11 scripts/
-rw-r--r-- 1 root root     12 Aug  6 13:11 signed-version
drwxr-xr-x 2 root root   4096 Nov 14  2023 source/
drwxr-xr-x 2 root root   4096 Aug  6 13:11 templates/
-rw-r--r-- 1 root root     21 Aug  9 07:41 tracking-bug

(3)apt source linux-image-unsigned-$(uname -r)

root@ubuntu22:~# apt source linux-image-unsigned-$(uname -r)
Reading package lists... Done
Picking 'linux' as source package instead of 'linux-image-unsigned-5.15.0-118-generic'
NOTICE: 'linux' packaging is maintained in the 'Git' version control system at:
git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
Please use:
git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
to retrieve the latest (possibly unreleased) updates to the package.
Need to get 206 MB of source archives.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (dsc) [7,799 B]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (tar) [195 MB]
Get:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (diff) [10.5 MB]
Fetched 206 MB in 2min 21s (1,455 kB/s)                                                                                      
dpkg-source: info: extracting linux in linux-5.15.0
dpkg-source: info: unpacking linux_5.15.0.orig.tar.gz
dpkg-source: info: applying linux_5.15.0-121.131.diff.gz

(4)apt install linux-source

# cd /usr/src# ll
total 16
drwxr-xr-x  4 root root 4096 Aug 20 08:12 ./
drwxr-xr-x 14 root root 4096 Aug  9  2022 ../
drwxr-xr-x 25 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118/
drwxr-xr-x  7 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118-generic/# apt install linux-source
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:linux-source-5.15.0
Suggested packages:libncurses-dev | ncurses-dev kernel-package libqt3-dev
The following NEW packages will be installed:linux-source linux-source-5.15.0
0 upgraded, 2 newly installed, 0 to remove and 112 not upgraded.
Need to get 153 MB of archives.
After this operation, 161 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 linux-source-5.15.0 all 5.15.0-121.131 [153 MB]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 linux-source all 5.15.0.121.121 [2,310 B]          
Fetched 153 MB in 1min 23s (1,834 kB/s)# ll
total 20
drwxr-xr-x  5 root root 4096 Sep 13 03:45 ./
drwxr-xr-x 14 root root 4096 Aug  9  2022 ../
drwxr-xr-x 25 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118/
drwxr-xr-x  7 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118-generic/
drwxr-xr-x  4 root root 4096 Sep 13 03:45 linux-source-5.15.0/
lrwxrwxrwx  1 root root   47 Aug  9 08:15 linux-source-5.15.0.tar.bz2 -> linux-source-5.15.0/linux-source-5.15.0.tar.bz2# ll linux-source-5.15.0
total 149944
drwxr-xr-x  4 root root      4096 Sep 13 03:45 ./
drwxr-xr-x  5 root root      4096 Sep 13 03:45 ../
drwxr-xr-x 15 root root      4096 Sep 13 03:45 debian/
drwxr-xr-x  7 root root      4096 Sep 13 03:45 debian.master/
-rw-r--r--  1 root root 153523863 Aug  9 08:15 linux-source-5.15.0.tar.bz2

(5)apt install linux-source-5.15.0

# apt install linux-source-5.15.0
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:libncurses-dev | ncurses-dev kernel-package libqt3-dev
The following NEW packages will be installed:linux-source-5.15.0
0 upgraded, 1 newly installed, 0 to remove and 112 not upgraded.
Need to get 153 MB of archives.
After this operation, 161 MB of additional disk space will be used.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 linux-source-5.15.0 all 5.15.0-121.131 [153 MB]
Fetched 153 MB in 1min 4s (2,401 kB/s) # ll
total 20
drwxr-xr-x  5 root root 4096 Sep 13 07:29 ./
drwxr-xr-x 14 root root 4096 Aug  9  2022 ../
drwxr-xr-x 25 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118/
drwxr-xr-x  7 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118-generic/
drwxr-xr-x  4 root root 4096 Sep 13 07:29 linux-source-5.15.0/
lrwxrwxrwx  1 root root   47 Aug  9 08:15 linux-source-5.15.0.tar.bz2 -> linux-source-5.15.0/linux-source-5.15.0.tar.bz2c# ll linux-source-5.15.0
total 149944
drwxr-xr-x  4 root root      4096 Sep 13 07:29 ./
drwxr-xr-x  5 root root      4096 Sep 13 07:29 ../
drwxr-xr-x 15 root root      4096 Sep 13 07:29 debian/
drwxr-xr-x  7 root root      4096 Sep 13 07:29 debian.master/
-rw-r--r--  1 root root 153523863 Aug  9 08:15 linux-source-5.15.0.tar.bz2

5、launchpad

Ubuntu 官方使用的代码托管和协作平台,可以浏览下载 Ubuntu 内核源码
https://code.launchpad.net/ubuntu/+source/linux

ubuntu22.04
git clone https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy

git tag
最接近5.15.0-118-generic的版本为 Ubuntu-5.15.0-118.128

git checkout Ubuntu-5.15.0-118.128

只clone指定标签的最新代码(无其它标签)(有没有single-branch参数结果都一样)
git clone --branch Ubuntu-5.15.0-118.128 --depth 1 --single-branch https://git.launchpa
d.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy

6、https://kernel.ubuntu.com/git/

版本列表链接到code.launchpad.net

相关文章:

Ubuntu 22.04 源码下载的几种方法

1、查询当前系统内核版本 rootubuntu22:~# uname -r 5.15.0-118-generic 2、查询本地软件包数据库中的内核源码信息 rootubuntu22:~# apt search linux-source Sorting... Done Full Text Search... Done linux-source/jammy-updates,jammy-security,now 5.15.0.119.119 all…...

floodfill+DFS(1)

文章目录 图像渲染岛屿数量岛屿的最大面积被围绕的岛屿 图像渲染 class Solution { public:int m 0, n 0;bool check[51][51] {false};vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int color) {m image.size…...

小程序开发设计-第一个小程序:注册小程序开发账号②

上一篇文章导航&#xff1a; 小程序开发设计-小程序简介①-CSDN博客https://blog.csdn.net/qq_60872637/article/details/142217803?sharetypeblogdetail&sharerId142217803&sharereferPC&sharesourceqq_60872637&spm1011.2480.3001.8118 须知&#xff1a;不…...

C++基础面试题 | C++中的构造函数可以是虚函数吗? C++中的析构函数一定要是虚函数吗?

文章目录 问题一&#xff1a;在C中&#xff0c;构造函数不能是虚函数。问题二&#xff1a;析构函数不一定需要声明为虚函数&#xff0c;但在多态环境下&#xff0c;建议一定将其声明为虚函数。示例虚函数总结 问题一&#xff1a;在C中&#xff0c;构造函数不能是虚函数。 这是…...

Leetcode—1184. 公交站间的距离【简单】

2024每日刷题&#xff08;161&#xff09; Leetcode—1184. 公交站间的距离 实现代码 class Solution { public:int distanceBetweenBusStops(vector<int>& distance, int start, int destination) {int clockwise 0;int counterclockwise 0;if(start > desti…...

【python数据处理】保存网页

直觉上处理网页信息&#xff0c;很多人会先将网页保存成HTML&#xff0c;然后做文本分析。但这样做是不够的&#xff0c;因为网页可能内嵌图片&#xff0c;这些图片在HTML里就是一处链接&#xff0c;离线处理时无法还原&#xff0c;相当于丢失了图片信息。更好的做法是将整个网…...

智能体趋势:未来科技的核心驱动力

随着人工智能&#xff08;AI&#xff09;技术的不断发展&#xff0c;**智能体&#xff08;intelligent agents&#xff09;**逐渐成为当今科技发展的重要趋势。这些智能体不仅仅是软件&#xff0c;它们正在改变我们生活和工作的方式&#xff0c;成为推动科技和社会变革的核心力…...

学习笔记 韩顺平 零基础30天学会Java(2024.9.16)

P563 自定义泛型方法 当调用方法时&#xff0c;要传入参数&#xff0c;因为当传入参数时&#xff0c;编译器就可以确定泛型代表的类型 泛型方法和方法使用了泛型是不一样的 泛型方法可以使用类声明的泛型&#xff0c;也可以使用自己的泛型 P564 泛型方法练习 P565 泛型的继承和…...

python selenium网页操作

一、安装依赖 pip install -U seleniumselenium1.py&#xff1a; from selenium import webdriver from selenium.webdriver.common.by import Bydriver webdriver.Chrome() driver.get("https://www.selenium.dev/selenium/web/web-form.html") title driver.ti…...

pytorch使用技巧

pytorch使用技巧 1. 指定GPU编号 设置当前使用的GPU设备仅为0号设备&#xff0c;设备名称为 /gpu:0os.environ["CUDA_VISIBLE_DEVICES"] "0" 设置当前使用的GPU设备为0, 1号两个设备&#xff0c;名称依次为 /gpu:0、/gpu:1&#xff1a; os.environ[&quo…...

从用户数据到区块链:Facebook如何利用去中心化技术

在数字化时代&#xff0c;用户数据的管理和保护已成为科技公司面临的重大挑战。作为全球最大的社交网络平台之一&#xff0c;Facebook不仅在用户数据的处理上积累了丰富的经验&#xff0c;也在探索如何利用去中心化技术&#xff0c;如区块链&#xff0c;来改进其数据管理和用户…...

Elasticsearch之bool查询

bool 查询是 Elasticsearch 中最常用的复合查询类型&#xff0c;允许将多个查询组合在一起。它通过逻辑操作符&#xff08;如 must、should、must_not 和 filter&#xff09;来构建复杂的查询条件&#xff0c;从而满足多条件匹配、逻辑与&#xff08;AND&#xff09;、或&#…...

IntelliJ IDEA 创建 Java 项目指南

IntelliJ IDEA 是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;广泛用于 Java 开发。本文将介绍如何在 IntelliJ IDEA 中创建一个新的 Java 项目&#xff0c;包括环境的设置和基本配置。更多问题&#xff0c;请查阅 一、安装 IntelliJ IDEA 1. 下载 In…...

一起学Java(13)-[日志篇]教你分析SLF4J和Log4j2源码,掌握SLF4J与Log4j2桥接集成原理

研究完SLF4J和Logback这种无缝集成的方式(一起学Java(12)-[日志篇]教你分析SLF4J源码&#xff0c;掌握SLF4J如何与Logback无缝集成的原理)&#xff0c;继续研究Log4j2和SLF4J这种需要桥接集成的方式。 一、桥接包如何与SLF4J集成 我们已经知道SLF4J利用ServiceLoader机制&…...

深入Redis:核心的缓存

Redis最主要的用途&#xff0c;主要有三个方面&#xff1a;存储数据、缓存、消息队列。 其中&#xff0c;缓存是Redis最常用的场景。Redis使用内存作为硬盘的缓存。把用户集中访问的20%数据放到缓存中去&#xff0c;可以应对80%的请求。 数据库是非常重要的组件&#xff0c;但…...

集群聊天服务器项目【C++】项目介绍和环境搭建

前言&#xff1a;学习一个基于C集群聊天服务器的项目&#xff0c;记录学习的内容和学习的过程。 1.项目介绍 在 Linux 环境下基于 muduo 开发的集群聊天服务器。实现新用户注册、用户登录、添加好友、添加群组、好友通信、群组聊天、保持离线消息等功能。 2.技术栈 Json序列…...

c++ #include <memory> 智能指针介绍

#include <memory> 是 C 标准库中的头文件&#xff0c;用于支持智能指针的功能。智能指针是现代 C 的一种资源管理工具&#xff0c;用于自动管理动态分配的内存&#xff0c;从而减少内存泄漏和悬挂指针等问题的发生。它提供了多种类型的智能指针&#xff0c;包括 std::un…...

32.递归、搜索、回溯之floodfill算法

0.简介 1.图像渲染 . - 力扣&#xff08;LeetCode&#xff09; 题目解析 算法原理 代码 class Solution {int[] dx { 0, 0, 1, -1 };int[] dy { 1, -1, 0, 0 };int m, n;int prev;public int[][] floodFill(int[][] image, int sr, int sc, int color) {if (image[sr][sc]…...

Vue3.5+ 响应式 Props 解构

你好同学&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏、评论和关注。 在 Vue 3.5 中&#xff0c;响应式 Props 解构已经稳定并默认启用。这意味着在 <script setup> 中从 defineProps 调用解构的变量现在是响应式的。这一改进大大简化了声明带有默认值的 props 的方…...

k8s中的认证授权

目录 一、kubernetes API 访问控制 1.1 UserAccount与ServiceAccount 1.1.1 ServiceAccount 1.1.2 ServiceAccount示例 二、认证(在k8s中建立认证用户) 2.1 创建UserAccount 2.2 RBAC&#xff08;Role Based Access Control&#xff09; 2.2.1 基于角色访问控制授权&…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...