先是按Windows安装Rust环境(详细教程)-CSDN博客这篇文章的方法配置,然后用vscode粘贴下面的代码进去运行

fn main() {
    println!("Hello, world!");
}

报下面的错误:(当然不是说那篇文章有错误,而是在我的电脑上这样配置没有正确编译代码,可能是我之前配置不成功【大概1两年前没配置成功,后来放弃了很长一段时间】,有某些遗留问题没有解决导致的)。

rustc : 无法将“rustc”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名
称的拼写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 42
+ cd "f:\softwaredesign\rust\" ; if ($?) { rustc test_main.rs } ; if ($ ...
+                                          ~~~~~
    + CategoryInfo          : ObjectNotFound: (rustc:String) [], CommandNotFoundEx  
   ception
    + FullyQualifiedErrorId : CommandNotFoundException

后来按上面的报错去搜,东搞搞西搞搞,最后报下面的错误:

error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1
  |
  = note: "x86_64-w64-mingw32-gcc" "-fno-use-linker-plugin" "-Wl,--dynamicbase" "-Wl,--disable-auto-image-base" "-m64" "-Wl,--high-entropy-va" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\rustcWZWZBJ\\symbols.o" "test_main.test_main.c2e72079789fbad4-cgu.0.rcgu.o" "test_main.vr64d2i6zmfdr1p.rcgu.o" "-L" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,-Bstatic" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-1683fd82638343be.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-eb9f57b02a4c4ab2.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libobject-bc57e4cee7293166.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libmemchr-059e52a8c613d3af.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libaddr2line-efcbcb9a0789423d.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libgimli-80f85573e9bb766d.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_demangle-889f7a6efec9f4dc.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd_detect-09b18846a746f0af.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libhashbrown-31cd209190d703ef.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_alloc-e8404b0b8f6f4382.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libminiz_oxide-bc59235147d22ea0.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libadler-9cb2321a4772fcd2.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libunwind-2c6aa0136462e05b.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcfg_if-99fd3d0973d7ee73.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liblibc-9a98c6acdf8fd843.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liballoc-1515046c1e15d59c.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_core-bbd5c76512e13fe4.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcore-42718813a9191d38.rlib" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-e75b7451417035c0.rlib" "-Wl,-Bdynamic" "-lkernel32" "-ladvapi32" "-lkernel32" "-lntdll" "-luserenv" "-lws2_32" "-lkernel32" "-lws2_32" "-lkernel32" "-lgcc_eh" "-l:l2" "-Wl,--nxcompat" "-L" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-o" "test_main.exe" "-Wl,--gc-sections" "-no-pie" "-nodefaultlibs" "D:\\rust\\rustup_home\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: d:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lgcc_eh
          collect2.exe: error: ld returned 1 exit status


error: aborting due to 1 previous error

然后用第一行的文本去搜,搜到一篇文章指向这里Visual Studio Code 中的 C++ 和 MinGW-w64 入门说这样配置就可以了,然后按文章说的下载MSYS2按装程序下来安装上。

按照上面的方法安装上后测试是否成功:

gcc --version
g++ --version
gdb --version

结果显示安装成功

运行vscode里的代码,还是报错:

error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1

后面又搜到这篇文章windows10搭建rust开发环境遇到error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1问题的解决过程 - 简书 (jianshu.com)

得到一些启发,文章里提到“rustup和cargo卸了,重装,”,所以也打算这样做,但是却不知道怎么卸载rust,所以做法是先把之前的环境文件夹D:\Program Files\mingw64删除,同时又把指向这两个文件夹的环境变量删除。

到此看到D:\msys64这个上面安装的文件夹忽然灵光一闪,莫不是只用这个就可以了?也不用再下载来配置。所以就再直接运行vscode里的代码,成功运行。

所以总结一下就是:

1,安装vscode。

2,在vscode里面安装c++扩展。

3,下载MSYS2按装程序安装上,并按上面的截图做好。

4,安装rust,win系统最好选x86_64-pc-windows-msvc,安装好后设置变量

        由于默认就是msvc版本,所以不用选择,直接回车就行

        按开头提到的文章里介绍的那样安装rust就行,如下:

        4.1可以通过设置环境变量,改变默认安装位置:

                RUSTUP_HOME D:\rust\rustup_home
                CARGO_HOME D:\rust\cargo_home

                 先设置变量在安装,可以看到会在D盘新建两个文件夹。

                按此设置安装好最后的截图:

        4.2 直接从官方网站下载会很慢,改用国内镜像加速安装,设置以下环境变量:

                RUSTUP_DIST_SERVER https://mirrors.tuna.tsinghua.edu.cn/rustup
                RUSTUP_UPDATE_ROOT https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup

        4.3配置库镜像(类似python的pip):在“C:\Users\用户名\”下创建“.cargo”文件夹,在文件夹内创建“config”文件,如下图:

                [source.crates-io]
                registry = “https://github.com/rust-lang/crates.io-index”
                replace-with = ‘tuna’
                [source.tuna]
                registry = https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git

        4.4 安装rust,选x86_64-pc-windows-msvc

                默认安装(位置可能是在C:\Users\Administrator\.cargo\bin),安装好最后的截图:

        按照提示,重启一下安装程序(重新双击运行rustup-init.exe),以设置环境变量。

                

        注意:如果没有设置上面的RUSTUP_HOME和CARGO_HOME变量,按照这一步来默认安装rust,安装到默认位置也是可以的。默认安装是先安装再设置变量,因为安装之前不确定安装在哪里,所以不能设置变量。而先设置指定安装位置的变量再安装,则安装程序就会安装到变量指定的路径,这两种安装方法2选1即可。

        4.5 安装后验证
                打开cmd窗口,输入 rustc --version ,输出版本信息说明安装成功,如下图:

5,此时 用vscode运行rust代码应该就可以了。

如果vscode在反复安装rust后运行不成功,在确保变量等都没问题的前提下,关掉vscode重新打开vscode在运行rust代码,结果如上图。

加群学习rust

如果群二维码过期,加微信legego,说明rust

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐