第一個Rust程序

在安裝好Rust以后,我們就可以編寫程序了。
首先,我們執行下面的命令,盡量讓你的rust版本和我的版本相同,或者比我的版本大。

zhangdapeng@zhangdapeng:~$ cargo --version
cargo 1.78.0 (54d8815d0 2024-03-26)
zhangdapeng@zhangdapeng:~$ rustc --version
rustc 1.78.0 (9b00956e5 2024-04-29)
zhangdapeng@zhangdapeng:~$ rustdoc --version
rustdoc 1.78.0 (9b00956e5 2024-04-29)
zhangdapeng@zhangdapeng:~$

cargo是編譯管理器,包管理器和通用工具。
rustc是rust編譯器。
rustdoc是rust的文檔工具。

使用cargo創建一個新的項目:

zhangdapeng@zhangdapeng:~/code/rust$ cargo new helloCreating binary (application) `hello` package
note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

查看創建的hello包的目錄:

zhangdapeng@zhangdapeng:~/code/rust$ ls hello
Cargo.toml  src

在Cargo.toml中,保存了這個項目的基本信息:

zhangdapeng@zhangdapeng:~/code/rust$ cd hello
zhangdapeng@zhangdapeng:~/code/rust/hello$ cat Cargo.toml 
[package]
name = "hello"
version = "0.1.0"
edition = "2021"[dependencies]

在src中,存放的是代碼文件,這里面本身已經有一個基本的代碼文件了:

zhangdapeng@zhangdapeng:~/code/rust/hello$ ls -lah src
total 12K
drwxrwxr-x 2 zhangdapeng zhangdapeng 4.0K May 14 09:19 .
drwxrwxr-x 4 zhangdapeng zhangdapeng 4.0K May 14 09:19 ..
-rw-rw-r-- 1 zhangdapeng zhangdapeng   45 May 14 09:19 main.rs
zhangdapeng@zhangdapeng:~/code/rust/hello$ cat src/main.rs 
fn main() {println!("Hello, world!");
}

因為已經有一個基礎代碼了,所以我們可以直接將整個項目運行起來:

zhangdapeng@zhangdapeng:~/code/rust/hello$ cargo runCompiling hello v0.1.0 (/home/zhangdapeng/code/rust/hello)
error: linker `cc` not found|= note: No such file or directory (os error 2)error: could not compile `hello` (bin "hello") due to 1 previous error

但是,我這里遇到了一個錯誤。
我的系統版本是Ubuntu24,這里的錯誤信息是:error: linker cc not found

這里的錯誤可以通過安裝gcc來解決:

zhangdapeng@zhangdapeng:~/code/rust/hello$ sudo apt install gcc -y
[sudo] password for zhangdapeng: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:binutils binutils-common binutils-x86-64-linux-gnu cpp cpp-13 cpp-13-x86-64-linux-gnu cpp-x86-64-linux-gnu gcc-13 gcc-13-base gcc-13-x86-64-linux-gnu gcc-x86-64-linux-gnu libasan8 libatomic1libbinutils libcc1-0 libctf-nobfd0 libctf0 libgcc-13-dev libgomp1 libgprofng0 libhwasan0 libisl23 libitm1 liblsan0 libmpc3 libquadmath0 libsframe1 libtsan2 libubsan1
Suggested packages:binutils-doc gprofng-gui cpp-doc gcc-13-locales cpp-13-doc gcc-multilib make autoconf automake libtool flex bison gdb gcc-doc gcc-13-multilib gcc-13-doc gdb-x86-64-linux-gnu
The following NEW packages will be installed:binutils binutils-common binutils-x86-64-linux-gnu cpp cpp-13 cpp-13-x86-64-linux-gnu cpp-x86-64-linux-gnu gcc gcc-13 gcc-13-base gcc-13-x86-64-linux-gnu gcc-x86-64-linux-gnu libasan8libatomic1 libbinutils libcc1-0 libctf-nobfd0 libctf0 libgcc-13-dev libgomp1 libgprofng0 libhwasan0 libisl23 libitm1 liblsan0 libmpc3 libquadmath0 libsframe1 libtsan2 libubsan1
0 upgraded, 30 newly installed, 0 to remove and 4 not upgraded.
Need to get 51.6 MB of archives.
After this operation, 182 MB of additional disk space will be used.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 binutils-common amd64 2.42-4ubuntu2 [239 kB]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libsframe1 amd64 2.42-4ubuntu2 [14.8 kB]
Get:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libbinutils amd64 2.42-4ubuntu2 [572 kB]
Get:4 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libctf-nobfd0 amd64 2.42-4ubuntu2 [97.1 kB]
Get:5 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libctf0 amd64 2.42-4ubuntu2 [94.5 kB]
Get:6 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libgprofng0 amd64 2.42-4ubuntu2 [851 kB]
Get:7 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 binutils-x86-64-linux-gnu amd64 2.42-4ubuntu2 [2,469 kB]
Get:8 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 binutils amd64 2.42-4ubuntu2 [18.0 kB]
Get:9 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 gcc-13-base amd64 13.2.0-23ubuntu4 [49.0 kB]
Get:10 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libisl23 amd64 0.26-3build1 [680 kB]
Get:11 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libmpc3 amd64 1.3.1-1build1 [54.5 kB]
Get:12 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 cpp-13-x86-64-linux-gnu amd64 13.2.0-23ubuntu4 [11.2 MB]
Get:13 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 cpp-13 amd64 13.2.0-23ubuntu4 [1,032 B]
Get:14 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 cpp-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [5,326 B]
Get:15 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 cpp amd64 4:13.2.0-7ubuntu1 [22.4 kB]
Get:16 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libcc1-0 amd64 14-20240412-0ubuntu1 [47.7 kB]
Get:17 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libgomp1 amd64 14-20240412-0ubuntu1 [147 kB]
Get:18 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libitm1 amd64 14-20240412-0ubuntu1 [28.9 kB]
Get:19 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libatomic1 amd64 14-20240412-0ubuntu1 [10.4 kB]
Get:20 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libasan8 amd64 14-20240412-0ubuntu1 [3,024 kB]
Get:21 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 liblsan0 amd64 14-20240412-0ubuntu1 [1,313 kB]
Get:22 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libtsan2 amd64 14-20240412-0ubuntu1 [2,736 kB]
Get:23 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libubsan1 amd64 14-20240412-0ubuntu1 [1,175 kB]
Get:24 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libhwasan0 amd64 14-20240412-0ubuntu1 [1,632 kB]
Get:25 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libquadmath0 amd64 14-20240412-0ubuntu1 [153 kB]
Get:26 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 libgcc-13-dev amd64 13.2.0-23ubuntu4 [2,688 kB]
Get:27 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 gcc-13-x86-64-linux-gnu amd64 13.2.0-23ubuntu4 [21.9 MB]
Get:28 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 gcc-13 amd64 13.2.0-23ubuntu4 [482 kB]
Get:29 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 gcc-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [1,212 B]
Get:30 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main amd64 gcc amd64 4:13.2.0-7ubuntu1 [5,018 B]
Fetched 51.6 MB in 4s (12.8 MB/s)
Selecting previously unselected package binutils-common:amd64.
(Reading database ... 83311 files and directories currently installed.)
Preparing to unpack .../00-binutils-common_2.42-4ubuntu2_amd64.deb ...
Unpacking binutils-common:amd64 (2.42-4ubuntu2) ...
Selecting previously unselected package libsframe1:amd64.
Preparing to unpack .../01-libsframe1_2.42-4ubuntu2_amd64.deb ...
Unpacking libsframe1:amd64 (2.42-4ubuntu2) ...
Selecting previously unselected package libbinutils:amd64.
Preparing to unpack .../02-libbinutils_2.42-4ubuntu2_amd64.deb ...
Unpacking libbinutils:amd64 (2.42-4ubuntu2) ...
Selecting previously unselected package libctf-nobfd0:amd64.
Preparing to unpack .../03-libctf-nobfd0_2.42-4ubuntu2_amd64.deb ...
Unpacking libctf-nobfd0:amd64 (2.42-4ubuntu2) ...
Selecting previously unselected package libctf0:amd64.
Preparing to unpack .../04-libctf0_2.42-4ubuntu2_amd64.deb ...
Unpacking libctf0:amd64 (2.42-4ubuntu2) ...
Selecting previously unselected package libgprofng0:amd64.
Preparing to unpack .../05-libgprofng0_2.42-4ubuntu2_amd64.deb ...
Unpacking libgprofng0:amd64 (2.42-4ubuntu2) ...
Selecting previously unselected package binutils-x86-64-linux-gnu.
Preparing to unpack .../06-binutils-x86-64-linux-gnu_2.42-4ubuntu2_amd64.deb ...
Unpacking binutils-x86-64-linux-gnu (2.42-4ubuntu2) ...
Selecting previously unselected package binutils.
Preparing to unpack .../07-binutils_2.42-4ubuntu2_amd64.deb ...
Unpacking binutils (2.42-4ubuntu2) ...
Selecting previously unselected package gcc-13-base:amd64.
Preparing to unpack .../08-gcc-13-base_13.2.0-23ubuntu4_amd64.deb ...
Unpacking gcc-13-base:amd64 (13.2.0-23ubuntu4) ...
Selecting previously unselected package libisl23:amd64.
Preparing to unpack .../09-libisl23_0.26-3build1_amd64.deb ...
Unpacking libisl23:amd64 (0.26-3build1) ...
Selecting previously unselected package libmpc3:amd64.
Preparing to unpack .../10-libmpc3_1.3.1-1build1_amd64.deb ...
Unpacking libmpc3:amd64 (1.3.1-1build1) ...
Selecting previously unselected package cpp-13-x86-64-linux-gnu.
Preparing to unpack .../11-cpp-13-x86-64-linux-gnu_13.2.0-23ubuntu4_amd64.deb ...
Unpacking cpp-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
Selecting previously unselected package cpp-13.
Preparing to unpack .../12-cpp-13_13.2.0-23ubuntu4_amd64.deb ...
Unpacking cpp-13 (13.2.0-23ubuntu4) ...
Selecting previously unselected package cpp-x86-64-linux-gnu.
Preparing to unpack .../13-cpp-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...
Unpacking cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
Selecting previously unselected package cpp.
Preparing to unpack .../14-cpp_4%3a13.2.0-7ubuntu1_amd64.deb ...
Unpacking cpp (4:13.2.0-7ubuntu1) ...
Selecting previously unselected package libcc1-0:amd64.
Preparing to unpack .../15-libcc1-0_14-20240412-0ubuntu1_amd64.deb ...
Unpacking libcc1-0:amd64 (14-20240412-0ubuntu1) ...
Selecting previously unselected package libgomp1:amd64.
Preparing to unpack .../16-libgomp1_14-20240412-0ubuntu1_amd64.deb ...
Unpacking libgomp1:amd64 (14-20240412-0ubuntu1) ...
Selecting previously unselected package libitm1:amd64.
Preparing to unpack .../17-libitm1_14-20240412-0ubuntu1_amd64.deb ...
Unpacking libitm1:amd64 (14-20240412-0ubuntu1) ...
Selecting previously unselected package libatomic1:amd64.
Preparing to unpack .../18-libatomic1_14-20240412-0ubuntu1_amd64.deb ...
Unpacking libatomic1:amd64 (14-20240412-0ubuntu1) ...
Selecting previously unselected package libasan8:amd64.
Preparing to unpack .../19-libasan8_14-20240412-0ubuntu1_amd64.deb ...
Unpacking libasan8:amd64 (14-20240412-0ubuntu1) ...
Selecting previously unselected package liblsan0:amd64.
Preparing to unpack .../20-liblsan0_14-20240412-0ubuntu1_amd64.deb ...
Unpacking liblsan0:amd64 (14-20240412-0ubuntu1) ...
Selecting previously unselected package libtsan2:amd64.
Preparing to unpack .../21-libtsan2_14-20240412-0ubuntu1_amd64.deb ...
Unpacking libtsan2:amd64 (14-20240412-0ubuntu1) ...
Selecting previously unselected package libubsan1:amd64.
Preparing to unpack .../22-libubsan1_14-20240412-0ubuntu1_amd64.deb ...
Unpacking libubsan1:amd64 (14-20240412-0ubuntu1) ...
Selecting previously unselected package libhwasan0:amd64.
Preparing to unpack .../23-libhwasan0_14-20240412-0ubuntu1_amd64.deb ...
Unpacking libhwasan0:amd64 (14-20240412-0ubuntu1) ...
Selecting previously unselected package libquadmath0:amd64.
Preparing to unpack .../24-libquadmath0_14-20240412-0ubuntu1_amd64.deb ...
Unpacking libquadmath0:amd64 (14-20240412-0ubuntu1) ...
Selecting previously unselected package libgcc-13-dev:amd64.
Preparing to unpack .../25-libgcc-13-dev_13.2.0-23ubuntu4_amd64.deb ...
Unpacking libgcc-13-dev:amd64 (13.2.0-23ubuntu4) ...
Selecting previously unselected package gcc-13-x86-64-linux-gnu.
Preparing to unpack .../26-gcc-13-x86-64-linux-gnu_13.2.0-23ubuntu4_amd64.deb ...
Unpacking gcc-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
Selecting previously unselected package gcc-13.
Preparing to unpack .../27-gcc-13_13.2.0-23ubuntu4_amd64.deb ...
Unpacking gcc-13 (13.2.0-23ubuntu4) ...
Selecting previously unselected package gcc-x86-64-linux-gnu.
Preparing to unpack .../28-gcc-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...
Unpacking gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
Selecting previously unselected package gcc.
Preparing to unpack .../29-gcc_4%3a13.2.0-7ubuntu1_amd64.deb ...
Unpacking gcc (4:13.2.0-7ubuntu1) ...
Setting up binutils-common:amd64 (2.42-4ubuntu2) ...
Setting up libctf-nobfd0:amd64 (2.42-4ubuntu2) ...
Setting up libgomp1:amd64 (14-20240412-0ubuntu1) ...
Setting up libsframe1:amd64 (2.42-4ubuntu2) ...
Setting up gcc-13-base:amd64 (13.2.0-23ubuntu4) ...
Setting up libquadmath0:amd64 (14-20240412-0ubuntu1) ...
Setting up libmpc3:amd64 (1.3.1-1build1) ...
Setting up libatomic1:amd64 (14-20240412-0ubuntu1) ...
Setting up libubsan1:amd64 (14-20240412-0ubuntu1) ...
Setting up libhwasan0:amd64 (14-20240412-0ubuntu1) ...
Setting up libasan8:amd64 (14-20240412-0ubuntu1) ...
Setting up libtsan2:amd64 (14-20240412-0ubuntu1) ...
Setting up libbinutils:amd64 (2.42-4ubuntu2) ...
Setting up libisl23:amd64 (0.26-3build1) ...
Setting up libcc1-0:amd64 (14-20240412-0ubuntu1) ...
Setting up liblsan0:amd64 (14-20240412-0ubuntu1) ...
Setting up libitm1:amd64 (14-20240412-0ubuntu1) ...
Setting up libctf0:amd64 (2.42-4ubuntu2) ...
Setting up cpp-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
Setting up libgprofng0:amd64 (2.42-4ubuntu2) ...
Setting up libgcc-13-dev:amd64 (13.2.0-23ubuntu4) ...
Setting up binutils-x86-64-linux-gnu (2.42-4ubuntu2) ...
Setting up cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
Setting up cpp-13 (13.2.0-23ubuntu4) ...
Setting up gcc-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
Setting up binutils (2.42-4ubuntu2) ...
Setting up gcc-13 (13.2.0-23ubuntu4) ...
Setting up cpp (4:13.2.0-7ubuntu1) ...
Setting up gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
Setting up gcc (4:13.2.0-7ubuntu1) ...
Processing triggers for man-db (2.12.0-4build2) ...
Processing triggers for libc-bin (2.39-0ubuntu8.1) ...
Scanning processes...                                                                                                                                                                               
Scanning linux images...                                                                                                                                                                            Running kernel seems to be up-to-date.No services need to be restarted.No containers need to be restarted.No user sessions are running outdated binaries.No VM guests are running outdated hypervisor (qemu) binaries on this host.

安裝了gcc以后,重新運行就可以了:

zhangdapeng@zhangdapeng:~/code/rust/hello$ cargo runCompiling hello v0.1.0 (/home/zhangdapeng/code/rust/hello)Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.37sRunning `target/debug/hello`
Hello, world!

這個命令會生成一個可執行文件:

zhangdapeng@zhangdapeng:~/code/rust/hello$ ls target/debug/
build  deps  examples  hello  hello.d  incremental

我們也可以直接調用可執行文件運行:

zhangdapeng@zhangdapeng:~/code/rust/hello$ ./target/debug/hello 
Hello, world!

cargo還貼心的給我們準備了清理調試代碼的功能:

zhangdapeng@zhangdapeng:~/code/rust/hello$ cargo cleanRemoved 21 files, 7.3MiB total
zhangdapeng@zhangdapeng:~/code/rust/hello$ ls -lah
total 28K
drwxrwxr-x 4 zhangdapeng zhangdapeng 4.0K May 14 09:34 .
drwxrwxr-x 3 zhangdapeng zhangdapeng 4.0K May 14 09:19 ..
-rw-rw-r-- 1 zhangdapeng zhangdapeng  149 May 14 09:24 Cargo.lock
-rw-rw-r-- 1 zhangdapeng zhangdapeng   76 May 14 09:19 Cargo.toml
drwxrwxr-x 6 zhangdapeng zhangdapeng 4.0K May 14 09:19 .git
-rw-rw-r-- 1 zhangdapeng zhangdapeng    8 May 14 09:19 .gitignore
drwxrwxr-x 2 zhangdapeng zhangdapeng 4.0K May 14 09:19 src

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/12191.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/12191.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/12191.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言(指針)2

Hi~!這里是奮斗的小羊,很榮幸各位能閱讀我的文章,誠請評論指點,關注收藏,歡迎歡迎~~ 💥個人主頁:小羊在奮斗 💥所屬專欄:C語言 本系列文章為個人學習筆記&#x…

聽說SOLIDWORKS科研版可以節約研發成本?

近幾年來,政府越來越重視科研帶動產業,績效優良的產業技術研究院對于國家和地區的學術成果轉化、技術創新、產業發展等具有不可忽視的促進和帶動作用。研究院會承擔眾多新產業的基礎研究工作,而常規的基礎研究需要長期的積累,每個…

JAVA畢業設計141—基于Java+Springboot+Vue的物業管理系統(源代碼+數據庫)

畢設所有選題: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootVue的物業管理系統(源代碼數據庫)141 一、系統介紹 本項目前后端分離,分為管理員、員工、用戶三種角色(角色權限可自行分配) 1、用戶: …

Nginx詳解:高性能HTTP和反向代理服務器

Nginx詳解:高性能HTTP和反向代理服務器 一、引言 Nginx(發音為“engine x”)是一個開源的高性能HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP代理服務器。由于其出色的性能和穩定性,Nginx已經成為互聯網上最受歡迎的…

asp.net結課作業中遇到的問題解決4

目錄 1、vs2019每次運行一次項目之后,樣式表的格式就算在vs2019上改變了,在瀏覽器中顯示的還是以前的樣式,所以應該如何修改 2、如何實現選擇下拉框之后,顯示所選擇的這個類型的書籍的名稱 3、如何實現點擊首頁顯示的書籍&#…

高清模擬視頻采集卡CVBS四合一信號采集設備解析

介紹一款新產品——LCC261高清視頻采集與編解碼一體化采集卡。這款高品質的產品擁有卓越的性能表現和豐富多樣的功能特性,能夠滿足廣大用戶對于高清視頻采集、處理以及傳輸的需求。 首先,讓我們來了解一下LCC261的基本信息。它是一款基于靈卡技術研發的高…

Shell三劍客之sed

前言: Shell三劍客是grep、sed和awk三個工具的簡稱,因功能強大,使用方便且使用頻率高,因此被戲稱為三劍客,熟練使用這三個工具可以極大地提升運維效率。 sed是一個流編輯器,用于對文本進行編輯、替換、刪除等操作。sed…

LeetCode2095刪除鏈表的中間節點

題目描述 給你一個鏈表的頭節點 head 。刪除 鏈表的 中間節點 ,并返回修改后的鏈表的頭節點 head 。長度為 n 鏈表的中間節點是從頭數起第 ?n / 2? 個節點(下標從 0 開始),其中 ?x? 表示小于或等于 x 的最大整數。對于 n 1、…

深入探索Android簽名機制:從v1到v3的演進之旅

引言 在Android開發的世界中,APK的簽名機制是確保應用安全性的關鍵環節。隨著技術的不斷進步,Android簽名機制也經歷了從v1到v3的演進。本文將帶你深入了解Android簽名機制的演變過程,揭示每個版本背后的技術細節,并探討它們對開…

淺談下MYSQL表設計的幾條規則

作為后端開發人員,避免不了和數據庫打交道,可是我們怎么能夠設計出高效,可維護,可擴展的數據庫設計呢,在這里我總結了幾個點,供大家參考。 在寫之前,可能需要重復下數據庫設計的范式原則&#…

docker-compose.yml文件詳解

創建 docker-compose.yml 文件是使用 Docker Compose 管理多容器應用的第一步。這個 YAML 格式的文件詳細描述了服務、網絡和卷等組件以及它們之間的關系。下面是對一個典型 docker-compose.yml 文件結構的詳解: 基本結構 一個基本的 docker-compose.yml 文件通常…

水雨情監測系統—實時監測水位信息

TH-SW3水雨情監測系統是一種專門用于實時監測和收集水文氣象數據的自動化系統。它能夠實時獲取區域內降雨和水情數據,并將其存儲到數據庫中進行分析處理,從而為防汛指揮人員提供及時準確的信息服務。 水雨情監測系統的主要功能包括實時監測水位、流速、流…

C++類與對象基礎探秘系列(二)

目錄 類的6個默認成員函數 構造函數 構造函數的概念 構造函數的特性 析構函數 析構函數的概念 析構函數的特性 拷貝構造函數 拷貝構造函數的概念 拷貝構造函數的特性 賦值運算符重載 運算符重載 賦值運算符重載 const成員 const修飾類的成員函數 取地址及const取地址操作…

MySQL文檔_下載

可能需要:MySQL下載–》更新版本–》遷移數據庫到MySQL 以下都不重要【只要確定好需要安裝版本,找到對應的版本下載,安裝,設置即可】 下載、安裝: Determine whether MySQL runs and is supported on your platform…

iCloud如何高效利用:提升蘋果生態體驗

iCloud如何高效利用:提升蘋果生態體驗 引言 iCloud是蘋果公司提供的云服務,它允許用戶在蘋果設備之間無縫同步數據和內容。隨著數字化生活的不斷發展,有效地管理和利用iCloud對于提高工作效率和生活質量變得越來越重要。本文將詳細介紹如何…

Debian12安裝后更換為國內鏡像源,切換root用戶,解決用戶名不在sudoers文件中此事將被報告

選擇Debian作為編程開發最佳Linux的理由: Debian是面向程序員的最古老,最出色的Linux發行版之一。Debian提供了具有.deb軟件包管理兼容性的超穩定發行版。Debian為程序員提供了許多最新功能。因此,它具有一個特殊的編程空間。Debian是開發人員…

彌合孤島:克服構建 DevOps 文化的挑戰

持續變革正在發生軟件開發行業。DevOps 因其對自動化、協作和持續改進的關注而成為優化軟件交付并彌合開發和運營團隊之間鴻溝的重要方法。然而,過渡到真正的 DevOps 文化并非沒有挑戰。本文探討了您在追求 DevOps 時可能面臨的障礙并提供了解決方案。 01 了解 Dev…

數據結構 順序表1

1. 何為順序表: 順序表是一種線性數據結構,是由一組地址連續的存儲單元依次存儲數據元素的結構,通常采用數組來實現。順序表的特點是可以隨機存取其中的任何一個元素,并且支持在任意位置上進行插入和刪除操作。在順序表中&#xf…

算法-卡爾曼濾波之基本數學的概念

1.均值 定義:均值是一組數據中所有數值的總和除以數據的數量。均值是數據的中心趨勢的一種度量,通常用符號 xˉ 表示。 :對于包含 n 個數據的數據集 {𝑥1,𝑥2,...,𝑥𝑛},均值 xˉ 計…

Spring原理

目錄 一、Bean作用域 1、Bean作用域概念 2、Bean的六種作用域 3、舉例演示bean的幾種作用域 二、Bean的生命周期 1、Bean對象的生命周期 2、演示Bean對象的生命周期 三、SpringBoot的自動配置 1、概念 2、spring將對象存入容器中的原理 一、Bean作用域 在前面spring…