Rust 笔记:开发环境搭建与 rust 工具介绍

news2024/12/24 9:45:55
Rust 笔记
开发环境搭建与 rust 工具介绍

作者李俊才 (jcLee95):https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343
邮箱 :291148484@163.com
本文地址:https://blog.csdn.net/qq_28550263/article/details/130761337


下一节:《 Rust 项目结构 与 第一个 Rust 项目

【介绍】:本文记叙搭建 Rust 语言安装开发环境,及其相关工具知识的准备。


1. 搭建 rust 开发环境

1.1 安装 Rust

1.1.1 Linux 上安装 Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

1.1.2 Windows 上安装 Rust

64位安装包
https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe

32位安装包

https://static.rust-lang.org/rustup/dist/i686-pc-windows-msvc/rustup-init.exe

The Cargo home directory is located at:

  C:\Users\a2911\.cargo

This can be modified with the CARGO_HOME environment variable.

The cargo, rustc, rustup and other commands will be added to
Cargo's bin directory, located at:

  C:\Users\a2911\.cargo\bin

This path will then be added to your PATH environment variable by
modifying the HKEY_CURRENT_USER/Environment/PATH registry key.

You can uninstall at any time with rustup self uninstall and
these changes will be reverted.

Current installation options:


   default host triple: x86_64-pc-windows-msvc
     default toolchain: stable (default)
               profile: default
  modify PATH variable: yes

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>

你可以选择 :

  • 1) Proceed with installation(继续安装)
  • Customize installation(自定义安装)
    这里我们选择 1:
>1

安装程序将边下载边安装:

info: profile set to 'default'
info: default host triple is x86_64-pc-windows-msvc
info: syncing channel updates for 'stable-x86_64-pc-windows-msvc'
info: latest update on 2023-04-20, rust version 1.69.0 (84c898d65 2023-04-16)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
 13.4 MiB /  13.4 MiB (100 %)   7.4 MiB/s in  2s ETA:  0s
info: downloading component 'rust-std'
 25.1 MiB /  25.1 MiB (100 %)  11.2 MiB/s in  2s ETA:  0s
info: downloading component 'rustc'
 58.9 MiB /  58.9 MiB (100 %)  10.2 MiB/s in  5s ETA:  0s
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
 13.4 MiB /  13.4 MiB (100 %)   1.6 MiB/s in  6s ETA:  0s
info: installing component 'rust-std'
 25.1 MiB /  25.1 MiB (100 %)  13.2 MiB/s in  1s ETA:  0s
info: installing component 'rustc'
 58.9 MiB /  58.9 MiB (100 %)  14.5 MiB/s in  4s ETA:  0s
info: installing component 'rustfmt'
info: default toolchain set to 'stable-x86_64-pc-windows-msvc'

  stable-x86_64-pc-windows-msvc installed - rustc 1.69.0 (84c898d65 2023-04-16)


Rust is installed now. Great!

To get started you may need to restart your current shell.
This would reload its PATH environment variable to include
Cargo's bin directory (%USERPROFILE%\.cargo\bin).

Press the Enter key to continue.

点击回车键继续,安装完成,程序退出。

希望这篇文章能让你不仅有一定的收获,而且可以愉快的学习,如果有什么建议,都可以留言和我交流

1.2 安装 Rust 的 VSCode 插件

1.2.1 rust-analyzer 插件

在这里插入图片描述

这个扩展提供了对Rust编程语言的支持。推荐使用它,它将取代rust-lang.rust。你可以在以下地址找到它:

https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer

1.3 关于 Rust 的更新

Rust更新非常频繁。如果你已经安装了Rustup,很可能你的Rust版本已经过时了。通过运行rustup update获得Rust的最新版本。

关于 rustup 工具,将在下一节更加详细地介绍。

2. Rust安装程序和版本管理工具: rustup

2.1 rustup 的安装位置

当安装 rust 的时候,rustup 自动地被安装。 对于 Windows 系统 一般而言,在你的用户主目录下,将由一个 .cargo 文件夹,其中的 bin 子目录存放的是 rust 的各个二进制可执行文件。

比如,我当前登陆的用户名位 a2911,对应的,我的用户主目录为C:\Users\a2911,而这些可执行文件就位于 C:\Users\a2911\.cargo\bin

在这里插入图片描述
如果你无法执行命令如 rustup 等命令(提示不能识别),则需要手动将该位置添加到系统的 path 环境变量中。

2.2 rustup 的用法

2.2.1 rustup 命令行语法格式

rustup.exe 提供以下命令语法格式

rustup [OPTIONS] [+toolchain] <SUBCOMMAND>

2.2.2 rustup 命令参数与选项解析

OPTIONS 表示选项,各个选项的 简写、全写、含义如下:

  • -v, --verbose 启用详细输出
  • -q, --quiet 禁用进度输出
  • -h, --help 打印帮助信息
  • -V, --version 打印版本信息

参数部分:
<+toolchain> 释放通道(例如 +stable)或自定义工具链以设置覆盖

SUBCOMMANDS 表示 子命令,包括:

  • show 显示活动的和已安装的工具链或profiles
  • update 更新Rust工具链和rustup
  • check 检查Rust toolchains和rustup的更新
  • default 设置默认工具链
  • toolchain 修改或查询已安装的工具链
  • target 修改工具链支持的目标
  • component 修改工具链的已安装组件
  • override 修改目录工具链覆盖
  • run 使用为给定工具链配置的环境运行命令
  • which 显示给定命令将运行哪个二进制文件
  • doc 打开当前工具链的文档
  • self 修改升级安装
  • set 更改升级设置
  • completions 为您的shell生成制表符结束脚本
  • help 打印此消息或给定子命令的帮助

3. Rust包管理器:cargo

3.1 cargo 是什么

除了上一节介绍的 rustup 工具外,还需要介绍一下 cargo 工具——他就相当于 npmnodeJS 一样,是 rust包的管理工具。

3.2.1 cargo 命令行语法格式

rustup.exe 提供以下命令语法格式

cargo [+toolchain] [OPTIONS] [COMMAND]

3.2.2 cargo 命令参数与选项解析

1. 选项(Options):

cargo 命令具有以下选项:

  • -V, --version 打印版本信息并退出
    • --list 列出已安装的命令
    • --explain <CODE> 运行 rustc --explain CODE
  • -v, --verbose… 使用详细输出(-vv very verbose/build.rs输出)
  • -q, --quiet 不要打cargo 物日志信息
    --color <WHEN> 着色: auto, always, never
  • -C <DIRECTORY> 在做任何事情之前切换到目录 (nightly-only)
    • --frozen 要求 Cargo.lock 和 cache 是最新的
    • --locked 要求 Cargo.lock 是最新的
    • --offline 不访问网络运行
    • --config <KEY=VALUE> 覆盖配置值
  • -Z <FLAG> Cargo的不稳定(nightly-only)标志,详情见cargo -Z help
  • -h, --help 打印帮助信息

2. 命令(Commands):

  • build, b 编译当前包
  • check, c 分析当前包并报告错误,但不构建目标文件
  • clean 删除 target 目录
  • doc, d 构建此包及其依赖项的文档
  • new 创建新的 cargo 包
  • init 在现有目录中创建新的 cargo 包
  • add 向清单文件添加依赖项
  • remove 从清单文件中移除依赖项
  • run, r 运行本地包的二进制或示例
  • test, t 运行测试
  • bench 运行 benchmarks
  • update 更新 Cargo.lock 中列出的依赖项
  • search 搜索 crates 注册表
  • publish 打包并将此包上传到注册表
  • install 安装一个Rust二进制文件。默认位置是 $HOME/.cargo/bin
  • uninstall 卸载Rust二进制文件

注:

  • 一些常见的cargo命令有(参见所有带 --list的命令)

4. rust 项目构建与 rustc 工具(rust 语言的编译器)

4.1 cargo build 命令

在 Cargo 小节没有详细介绍过其子命令,其中就有一个 build 子命令,其功能是 编译本地包及其所有依赖项,其语法格式为:

cargo build [options]

其中 options 表示选项:

Package选择 选项

默认情况下,当没有给出包选择选项时,所选择的包取决于所选择的清单文件(如果没有给出 --manifest-path,则基于当前工作目录)。如果清单是工作区的根,则选择工作区的默认成员,否则只选择清单定义的包。
可以使用根清单中的workspace.default-members键显式设置工作区的默认成员。如果没有设置,虚拟工作空间将包括所有的工作空间成员(相当于传入选项 --workspace),而非虚拟工作空间将只包括root crate本身。

  • -p spec…, --package spec… 仅构建指定的包。该标志可以多次指定,并支持常见的Unix全局模式,如*?[]。然而,为了避免您的shell在Cargo处理glob模式之前意外扩展它们,您必须在每个模式周围使用单引号或双引号。

  • --workspace 构建工作区中的所有成员。

  • --all 不推荐使用 --workspace

  • --exclude SPEC… 排除指定的包。必须与 --workspace 标志一起使用。该标志可以多次指定,并支持常见的Unix全局模式,如*?[]。然而,为了避免您的shell在Cargo处理glob模式之前意外扩展它们,您必须在每个模式周围使用单引号或双引号。

Target选择 选项

当没有给出目标选择选项时,cargo build将构建所选包的所有二进制和库目标。如果二进制文件缺少必需的特性,它们将被跳过。如果选择了要构建的集成测试或基准,那么二进制目标会自动构建。这允许集成测试执行二进制代码来测试它的行为。构建集成测试时会设置 CARGO_BIN_EXE_<name> 环境变量 <https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-crates> 以便它可以使用env宏 <https://doc.rust-lang.org/std/macro.env.html> 来定位可执行文件。传递目标选择标志将只构建指定的目标。注意 --bin--example--test--bench 标志也支持常见的Unix全局模式,如*?[]。然而,为了避免 shell 在 Cargo 处理 glob模式 之前意外地扩展它们,您必须在每个 glob模式 周围使用单引号或双引号。

  • --lib 构建包的库。

  • --bin name… 构建指定的二进制文件。该标志可以多次指定,并支持常见的Unix glob模式。

  • --bins 构建所有二进制目标。

  • --example name… 构建指定的示例。该标志可以多次指定,并支持常见的Unix glob模式。

  • --examples 构建所有示例目标。

  • --test name… 生成指定的集成测试。该标志可以多次指定,并支持常见的Unix glob模式。

  • --tests 在测试模式下构建所有设置了 test = true清单标志的目标。默认情况下,这包括作为单元测试和集成测试构建的库和二进制文件。请注意,这也将构建任何所需的依赖项,因此lib目标可以构建两次(一次作为单元测试,一次作为二进制文件、集成测试等的依赖项。).可以通过在目标的清单设置中设置测试标志来启用或禁用目标。

  • --bench name… 构建指定的benchmark(基准)。该标志可以多次指定,并支持常见的Unix glob模式。

  • --benches 在基准模式下构建所有设置了 bench = true 清单标志的目标。默认情况下,这包括作为基准构建的库和二进制文件,以及基准目标。请注意,这也将构建任何所需的依赖项,因此lib目标可能会构建两次(一次作为基准,一次作为二进制文件、基准等的依赖项。).可以通过在目标的清单设置中设置bench标志来启用或禁用目标。

  • --all-targets 构建所有目标。这相当于指定 --lib--bins--tests--benches--examples

Feature选择 选项

功能标志( Feature Flag)允许您控制启用哪些功能。如果没有给定功能选项,则为每个选定的软件包激活默认功能。
请参见功能文档 https://doc.rust-lang.org/cargo/reference/features.html#command-line-feature-options 了解更多详情。

  • -F features, --features features 要激活的以空格或逗号分隔的功能列表。工作空间成员的功能可以用 package-name/feature-name 语法来启用。可以多次指定该标志,从而启用所有指定的功能。

  • --all-features 激活所有选定软件包的所有可用功能。

  • --no-default-features 不要激活所选软件包的默认功能。

Compilation 选项

  • --target triple 为给定的体系结构构建。默认为主机架构。三元组的一般格式是<arch><sub>-<vendor>-<sys>-<abi>。 运行 rustc --print target-list以获取受支持目标的列表。可以多次指定该标志。
    这也可以用 build.target 配置值 https://doc.rust-lang.org/cargo/reference/config.html 来指定。
    注意,指定这个标志会使Cargo以不同的模式运行,其中目标工件被放在一个单独的目录中。有关更多详细信息,请参见构建缓存 https://doc.rust-lang.org/cargo/guide/build-cache.html 文档了解更多细节。

  • -r, --release 使用发布profile文件构建优化的工件。另请参见 --profile 选项,通过名称选择特定的配置文件。

  • --profile name 用给定的profile文件构建。请参阅参考文件 https://doc.rust-lang.org/cargo/reference/profiles.html 以了解有关配置文件的更多详细信息。

  • --ignore-rust-version 构建目标,即使所选Rust编译器比项目的 rust-version` 字段中配置的所需Rust版本旧。

  • --timings=fmts 输出每次编译需要多长时间的信息,并随着时间的推移跟踪并发信息。接受可选的逗号分隔的输出格式列表;不带参数的计时将默认为 --timings=html.。指定输出格式(而不是默认格式)是不稳定的,需要 -Zunstable-options。有效的输出格式:

    • html (不稳定,需要 -Zunstable-options):将一个人类可读的文件cargo-timing.html写入target/cargo-timings目录,并附上编译报告。如果您想查看以前的运行,也可以在相同的目录下写一个带有时间戳的报告。HTML输出只适合人类使用,不提供机器可读的计时数据。
    • json(不稳定,需要 -Zunstable-options):发出关于计时信息的机器可读JSON信息。

Output 选项

  • --target-dir directory 所有生成的工件和中间文件的目录。也可以用CARGO_TARGET_DIR 环境变量或 build.target-dir 配置值 https://doc.rust-lang.org/cargo/reference/config.html 来指定。默认为工作空间根目录中的 target

  • --out-dir directory 将最终工件复制到此目录。此选项不稳定,仅在nightly channel 上可用,并且需要-Z不稳定选项标志才能启用。 见 https://github.com/rust-lang/cargo/issues/6790 以获取更多信息

Display 选项

  • -v, --verbose 使用详细输出。对于包括额外输出(如依赖关系警告和构建脚本输出)的“very verbose(非常详细)”输出,可以指定两次。也可以用term.verbose配置值指定 https://doc.rust-lang.org/cargo/reference/config.html。

  • -q, --quiet 不要打印 cargo 日志信息。也可以用term.quiet配置值指定。https://doc.rust-lang.org/cargo/reference/config.html

  • --color when 控制何时使用彩色输出。有效值:

    • auto (默认):自动检测终端是否支持颜色。
    • always:始终显示颜色。
    • never:从不显示颜色。

也可以用term.color配置值指定。 https://doc.rust-lang.org/cargo/reference/config.html

  • --message-format fmt 诊断消息的输出格式。可以多次指定,由逗号分隔的值组成。有效值:

    • human (默认): 以人类可读的文本格式显示。与short和json冲突。
    • short: 发出更短的、人类可读的文本消息。与human和json的冲突。
    • json: 向stdout发出JSON消息。详情见参考https://doc.rust-lang.org/cargo/reference/external-tools.html#json-messages。与人类的冲突和短暂。
    • json-diagnostic-short: 确保JSON消息的呈现字段包含来自rustc的“简短”呈现。不能与human或short一起使用。
    • json-diagnostic-rendered-ansi: 确保JSON消息的呈现字段包含嵌入的ANSI颜色代码,以符合rustc的默认颜色方案。不能与human或short一起使用。
    • json-render-diagnostics: 指示Cargo不要在打印的JSON消息中包含rustc诊断,而是Cargo本身应该呈现来自rustc的JSON诊断。Cargo自己的JSON诊断和来自rustc的其他诊断仍然会发出。不能与human或short一起使用。
  • --build-plan 向stdout输出一系列JSON消息,指示运行构建的命令。此选项不稳定,仅在nightly channel https://doc.rust-lang.org/book/appendix-07-nightly-rust.html 可用,并且需要-Z unstable-options标志才能启用。请参阅 https://github.com/rust-lang/cargo/issues/5579>了解更多信息。

Manifest 选项

  • --manifest-path path Cargo.toml文件的路径。默认情况下,Cargo在当前目录或任何父目录中搜索Cargo.toml文件。

  • --frozen, --locked 这两个标志都要求Cargo.lock文件是最新的。如果锁文件丢失,或者需要更新,Cargo将出错退出。冻结标志还防止货物试图访问网络来确定它是否过期。
    在希望断言 Cargo.lock文件是最新的(例如CI构建)或希望避免网络访问的环境中,可以使用这些文件。

  • --offline 防止货物以任何理由访问网络。如果没有这个标志,当Cargo需要访问网络而网络不可用时,Cargo将出错停止。有了这个标志,如果可能的话,货物将试图在没有网络的情况下前进。
    请注意,这可能会导致与在线模式不同的依赖关系解析。Cargo将自己限制在本地下载的板条箱中,即使在索引的本地副本中可能有更新的版本。请参阅cargo-fetch(1)命令,以便在脱机之前下载依赖项。

也可以用net.offline配置值来指定。https://doc.rust-lang.org/cargo/reference/config.html

Common 选项

  • +toolchain 如果cargo已经安装了rustup,并且Cargo的第一个参数以+开头,它将被解释为rustup工具链名称(例如+stable或+nightly)。请参见 rustup 文档 https://rust-lang.github.io/rustup/overrides.html 获取有关工具链覆盖如何工作的更多信息。

  • --config KEY=VALUE or PATH 覆盖货物配置值。该参数应该采用 KEY=VALUETOML 语法,或者作为额外配置文件的路径提供。可以多次指定该标志。请参阅命令行覆盖部分https://doc.rust-lang.org/cargo/reference/config.html#command-line-overrides了解更多信息。

  • -C PATH

    • 在执行任何指定操作之前,更改当前工作目录。这将影响 cargo 在默认情况下在哪里查找项目清单(Cargo.toml),以及为了发现而搜索的目录。比如 cargo/config.toml

    • 此选项仅在 nightly channel 和 上可用,并且需要-Z不稳定选项标志才能启用 (见 https://github.com/rust-lang/cargo/issues/10098)。

  • -h, --help 打印帮助信息。

  • -Z flag Cargo不稳定 (nightly-only) 标志。运行cargo -Z help获取详细信息。

Miscellaneous 选项

  • -j N, --jobs N 要运行的并行作业的数量。也可以用build.jobs配置值指定 https://doc.rust-lang.org/cargo/reference/config.html。 默认为逻辑CPU的数量。如果为负,它将并行作业的最大数量设置为逻辑CPU的数量加上提供的值。不应为0。

  • --keep-going 在依赖图中构建尽可能多的crates ,而不是在第一个构建失败时中止构建。不稳定,需要 ·-Zunstable-options·。

  • --future-incompat-report 显示在执行此命令期间产生的任何未来不兼容警告的未来不兼容报告。

4.2 Rust 语言的编译器: rustc 工具

另外一个重要的工具就是 rustc 了,它是 Rust 语言的编译器。不过大多数Rust程序员不直接调用 rustc,而是通过Cargo命令来实现——只是需要指出,这背后都是为rustc 服务的!

4.2.1 rustc 命令行语法格式

rustup.exe 提供以下命令语法格式

rustc [OPTIONS] INPUT

4.2.2 rustc 命令参数与选项解析

该命令具有以下选项:

  • -h, --help 显示此消息
    • --cfg SPEC 配置编译环境
  • -L [KIND=]PATH 将目录添加到库搜索路径。可选类型可以是dependencycratenativeframeworkall(默认)中的一种。
  • -l [KIND[:MODIFIERS]=]NAME[:RENAME] 将生成的 crate(s) 链接到指定的本地库名称。可选类型可以是 staticframeworkdylib(默认值)之一。可选的逗号分隔修饰符 (bundle|verbatim|whole-archive|as-needed) 可以用前缀 + 来指定,以启用或 - 来禁用。
    • --crate-type [bin|lib|rlib|dylib|cdylib|staticlib|proc-macro] 编译器要发出的以逗号分隔的 crates 类型列表
    • --crate-name NAME 指定正在构建的 crate 的名称
    • --edition 2015|2018|2021|2024 指定编译代码时要使用的编译器版本。默认为2015年,最新稳定版为2021年。
    • --emit [asm|llvm-bc|llvm-ir|obj|metadata|link|dep-info|mir] 编译器要发出的输出类型的逗号分隔列表
    • --print [crate-name|file-names|sysroot|target-libdir|cfg|calling-conventions|target-list|target-cpus|target-features|relocation-models|code-models|tls-models|target-spec-json|native-static-libs|stack-protector-strategies|link-args] 要在stdout上打印的编译器信息
  • -g 相当于 -C debuginfo=2
  • -O 相当于 -C opt-level=2
  • -o FILENAME 将输出写入
    • --out-dir DIR 将输出写入编译器在 中选择的文件名
    • --explain OPT 提供错误消息的详细解释
    • --test 构建测试工具
    • --target TARGET 为其编译代码的目标三元组
  • -A, --allow LINT 设置 lint 允许
  • -W, --warn LINT 设置 lint 警告信息
    --force-warn LINT 设置 lint 强制警告
  • -D, --deny LINT 设置lint拒绝
  • -F, --forbid LINT 禁止lint设置
    • --cap-lints LEVEL 设置最严格的lint 等级。更具限制性的lints被限制在这一级别
  • -C, --codegen OPT[=VALUE] 设置codegen选项
  • -V, --version 打印版本信息并退出
  • -v, --verbose 使用详细输出

其他帮助选项:

  • -C help 打印代码生成选项
  • -W help 打印“lint”选项和默认设置
  • --help -v 打印 rustc 接受的全套选项

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ArcMap:如何渲染一幅精美的地形图

目录 01 python渲染地形图 1.1 代码展示 1.2 重点讲一下阴影和光源的设置。 1.3 如何使用阴影进行进行渲染&#xff1f; 02 ArcMapArcSence渲染地形图 2.1 山地阴影的制作 2.2 基本高度和偏移 2.3 图层叠加和透明度等参数的设置 2.4 渲染的设置 2.5 其它设置 尝…

Linux利器tmux使用教程总览

文章目录 为什么是tmuxtmux的安装在Ubuntu和Debian上安装Tmux在CentOS和Fedora上安装Tmux在macOS上安装Tmux tmux的基本术语tmux的基本操作使用场景 tmux 是一个终端复用器&#xff08;terminal multiplexer&#xff09;&#xff0c;非常有用&#xff0c;属于常用的开发工具。本…

CAN波形分析

第一章 CAN基础 CAN波形分析 示波器表笔正连CANH,负极连CANL得到的波形为&#xff1a; CANH和CANL经过MCP2551或者MCP2515转换之后&#xff0c;示波器正极连CRX&#xff0c;负极接地波形为 二进制表示并解析为 上图第二排红色表示的数字为每隔5个相同的数字要用奇异值隔开&…

性能测评:腾讯云轻量应用服务器CPU内存带宽系统盘

腾讯云轻量应用服务器性能如何&#xff1f;CPU型号主频、内存、公网带宽和系统盘存储多维对比&#xff0c;轻量应用服务器会不会比云服务器CVM性能差&#xff1f;相对于CVM云服务器轻量服务器更适合轻量级的应用&#xff0c;轻量服务适合中小企或个人开发者用于搭建We网站应用、…

【K8s】什么是Pod?Pod的调度与控制器

文章目录 一、Pod介绍1、Pod结构2、Pod的定义 二、Pod配置&#xff1a;spec.containers1、基本配置 name和image2、镜像拉取策略 imagePullpolicy3、启动命令 command4、环境变量 env5、端口设置 ports6、资源配额 resources 三、Pod的生命周期1、创建和终止2、初始化容器3、钩…

关于选择法拍房的五点建议

一边是不断上升的成交量和不断刷新的成交额&#xff0c;另一边是买了房无法入住和面临的一大笔税费&#xff0c;关于“法拍房”&#xff0c;其热度和问题并存交织。然而这一切对于一些有着结婚、孩子入学、养老、改善等购房需求的刚需者来说&#xff0c;丝毫没有影响......因为…

linux系统SSL证书部署https单/多站点

以下教程为linux系统申请SSL证书&#xff0c;部署单/多站点https方法。如果对技术不熟悉&#xff0c;建议l联系服务商。 另需先申请下载SSL证书&#xff0c;如还没有&#xff0c;请先申请ssl证书。 一、linux系统单/多站点https部署方法&#xff08;安装默认wdcp环境&#xf…

【框架源码】SpringBoot核心源码解读之自动配置源码分析

SpringBoot流行之前&#xff0c;程序员大多是用SSM框架整合来进行WEB后端开发。这种方式非常麻烦&#xff0c;需要手动引入大量的包&#xff0c;还要配置很多XML文件&#xff0c;光是搭建环境就需要很久。 基于这种的SSM中xml配置的繁琐&#xff0c;后来衍生出SpringBoot。Spr…

设计模式之装饰者模式(Decorator Pattern)——惯用继承思考者的另类路径

文章目录 装饰者模式问题分析解决方案装饰模式结构真实的设计案例1. 自定义编码器2. Java设计中的装饰者模式 装饰模式适合应用场景优缺点 装饰者模式 装饰模式是一种结构型设计模式&#xff0c; 允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。 装饰…

什么是研发 Lead Time?我悟了!

嗨&#xff0c;朋友&#xff01;你听说过「新型工伤」吗&#xff1f; 我好像「赛博确诊」了&#x1f623; 那天朋友约我吃饭&#xff0c;我下意识回复了句「好的&#xff0c;那我提一个日程」……还有上次跟一位准妈妈聊天&#xff0c;我好奇宝宝的预产期&#xff0c;结果脱口…

chatgpt赋能Python-python3_5怎么保存

Python 3.5 如何保存&#xff1a;完全指南 Python 作为一种高效的编程语言&#xff0c;以其清晰易懂的语法和优秀的生态系统著称。对于新手来说&#xff0c;Python 3.5 是一个很好的起点&#xff0c;因为它不仅有许多新的功能&#xff0c;还很容易学习。但是&#xff0c;尽管如…

Python实现ACO蚁群优化算法优化BP神经网络分类模型(BP神经网络分类算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蚁群优化算法(Ant Colony Optimization, ACO)是一种源于大自然生物世界的新的仿生进化算法&#xff0c…

机器学习-1 机器学习概述

机器学习概述 机器学习简介什么是机器学习&#xff1f;机器学习与人脑学习比较交叉学科机器学习、人工智能与深度学习 基本的机器学习术语机器学习的工作流程数据采集数据处理特征工程构建模型模型评估知识框架 机器学习的分类监督学习无监督学习半监督学习强化学习 机器学习常…

宝塔面板快速搭建贪吃蛇小游戏web网站 - 无需云服务器,网站发布上线

文章目录 前言视频教程1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面&#x1f34e;总结 转载自远程内网穿透的文章&#xff1a;Linux使用宝塔面板搭建网站&#xff0c;并内网穿透实现公网访问 前言 宝塔面板作为简单好用的…

it618云存储H5上传 图片附件 音视频自播放 v2.1.0(it618_h5oss)

实测演示地址&#xff08;图片云存储、云存储音乐mp3自动播放、云存储视频自动解析播放&#xff09;&#xff1a; 插件介绍&#xff1a; 目前本插件只对接了阿里云OSS&#xff0c;就是说图片等是上传到阿里云OSS的 支持的媒体有&#xff1a;图片、附件、音频与mp4视频 支持媒体…

项目部署云服务器

购买云服务器 腾讯云 产业智变云启未来 - 腾讯 (tencent.com)https://cloud.tencent.com/记得选CentOS&#xff08;基于Linux&#xff09;操作系统 使用XShell连接服务器 XShell其实就是一种远程终端模拟软件&#xff0c;它可以让用户连接到其他计算机&#xff0c;并在本地终…

Maven分模块开发

文章目录 1 分模块开发设计2 分模块开发实现2.1 环境准备2.2 抽取domain层步骤1:创建新模块步骤2:项目中创建domain包步骤3:删除原项目中的domain包步骤4:建立依赖关系步骤5:编译maven_02_ssm项目步骤6:将项目安装本地仓库 2.3 抽取Dao层步骤1:创建新模块步骤2:项目中创建dao包…

尚硅谷大数据技术Spark教程-笔记07【Spark内核源码(环境准备、通信环境、应用程序执行、shuffle、内存管理)】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址&#xff1a;尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01【SparkCore&#xff08;概述、快速上手、运行环境、运行架构&#xff09;】尚硅谷大数据技术Spark教程…

5th-Generation Mobile Communication Technology(五)

目录 一、5G/NR 1、 快速参考&#xff08;Quick Reference&#xff09; 2、5G Success 3、5G Challenges 4、Qualcomm Videos 二、PHY and Protocol 1、Frame Structure 2、Numerology 3、Waveform 4、Frequency Band 5、BWP 6、Synchronization 7、Beam Management 8、CSI Fra…

Gradle+组件化开发

Gradle组件化开发 Gradle一.什么是gradle&#xff1f;二.gradle优势三.project和module的关系三.project.gradle和module.gradle的区别 组件化开发一.背景二.项目结构三.组件开发代码配置四.BuildSrc组件化开发![在这里插入图片描述](https://img-blog.csdnimg.cn/bff8d7e91fd2…