记一次:clion使用rust插件配置环境并开发

前言:有同事打算使用rust语言编写一个客户端,奔着学习的心态动手试了一下。于是乎有了此文。

1、rust简介

2、clion安装rust插件

重启clion

3、使用clion中rust插件创建项目

此时需要用clion安装rust

安装成功,创建项目

初始界面如下

运行的时候还抛错,阿欧,如下

4、解决 linker 'link.exe' not found 错误

如何解决呢?

在 CLion 中运行 Rust 程序时遇到 linker 'link.exe' not found 错误,通常是因为系统缺少必要的 MSVC(Microsoft Visual C++)工具链。有两种解决办法,一种是下载vs(我不用),另一种是使用mingw-w64(这里使用的此方案)

4.1、安装 MinGW-w64(版本需要和rust版本匹配)

如果你不想安装 Visual Studio,可以使用 MinGW-w64 作为替代的编译工具链。MinGW-w64 提供了 GCC 编译器,可以用于编译 Rust 程序。

别忘了配置环境变量

4.2、检查rust工具链的详细信息

rustup show 是 Rust 工具链管理器 rustup 提供的一个命令,用于显示当前 Rust 工具链的详细信息。

解释

‌Default host: x86_64-pc-windows-msvc ‌
这是默认的目标平台架构,表示当前系统默认使用 x86_64 架构、Windows 操作系统、MSVC 工具链的组合进行编译。

‌rustup home: C:\Users\32194.rustup ‌
这是 rustup 工具链的安装目录,所有工具链、组件和元数据都存储在这个路径下。

‌installed toolchains: stable-x86_64-pc-windows-msvc (active, default) ‌
这显示了已安装的 Rust 工具链版本,其中 stable-x86_64-pc-windows-msvc 表示稳定版本的 Rust 工具链,适用于 x86_64 架构的 Windows 系统,使用 MSVC 工具链。(active, default) 表示这个工具链当前正在使用且是默认工具链。

‌active toolchain: stable-x86_64-pc-windows-msvc ‌
这表明当前激活的工具链版本,即正在使用的 Rust 编译器版本。

‌installed targets: x86_64-pc-windows-msvc ‌
这列出了已安装的目标平台,表示可以为 x86_64-windows-msvc 平台构建程序。

根据上述原因我们知道了系统缺少必要的 MSVC(Microsoft Visual C++)工具链导致的问题,那么我们如何切换到自己的mingw-w64呢?

4.3、安装GNU工具链

rustup toolchain install stable-x86_64-pc-windows-gnu

4.4、设为默认工具链

rustup default stable-x86_64-pc-windows-gnu

4.5、验证配置

rustup show

确认当前工具链 (应显示-gnu)

rustup show active-toolchain

检查调试器类型

rust-gdb --version # 应显示 GDB 版本信息

4.6、编译运行成功

5、写一个简单的窗口程序

Cargo.toml中修改

rust 复制代码
[package]
name = "rustText"
version = "0.1.0"
edition = "2024"
[dependencies]
eframe = "0.27"
egui = "0.27"

Main.rs中填写

rust 复制代码
use eframe::egui;

fn main() {
    let options = eframe::NativeOptions {
        viewport: egui::ViewportBuilder::default()
            .with_inner_size([400.0, 300.0]) // 新版尺寸设置方式
            .with_min_inner_size([300.0, 200.0]), // 添加最小尺寸防止错误
        ..Default::default()
    };
    eframe::run_native(
        "My Desktop App",
        options,
        Box::new(|_cc| Box::<MyApp>::default()),
    )
        .unwrap();
}

#[derive(Default)]
struct MyApp {}
impl eframe::App for MyApp {
    fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
        egui::CentralPanel::default().show(ctx, |ui| {
            ui.heading("Hello, Rust Desktop!");
            ui.label("This is a minimal desktop application built with egui.");

            if ui.button("Click me!").clicked() {
                println!("Button clicked!");
            }
        });
    }
}

运行

成功了~

相关推荐
xxwl58514 小时前
区域赛算法模版第八章---贪心(Greedy)
c++·笔记·学习·算法
alwaysrun14 小时前
Web之wasm-pack详解
前端·rust·web·wasm
qq_2842740515 小时前
S7-1200 PLC硬件与启保停实训:CPU选型与DC/DC/DC、循环扫描五阶段、博途组态及电动机启停自锁梯形图(含考点)
笔记·学习·自动化·制造
dear_bi_MyOnly15 小时前
栈和队列:从原理到应用全解析
c语言·开发语言·c++·学习·分类
遇印记16 小时前
应用层,网络管理
运维·网络·windows·学习·安全
DongQiShanRen17 小时前
六根硬件映射(下):物理闭环五步法,抽一条已实装的看
大数据·jvm·人工智能·算法·rust·哈希算法·集成学习
乌暮17 小时前
从 `println` 到生产级日志:Spring Boot 日志体系完全指南
java·开发语言·jvm·spring boot·后端·学习·面试
xian_wwq18 小时前
【学习笔记】Milvus 是什么?为什么 RAG 系统经常使用它?-14
笔记·学习·milvus
Zenova EdgeOS18 小时前
Rust TUI 实战:用 ratatui 构建工业边缘终端界面
开发语言·后端·rust·工业网关
自信1504130575918 小时前
重生之从0开始学习c++之string(下)
c++·学习·stl