开发者

使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

目录
  • chapter Ⅰ 事情起因
  • chapter Ⅱ 安装方法(Windows安装rust和vs code略过)
    • 1. 启用wsl 2
    • 2. 添加开发环境
      • 2.1. 打开rust官网,复制以下命令,安装rust工具链
      • 2.2. 安装rust的linux静态编译工具,等待安装完成
      • 2.3. 安装"musl-gcc"
      • 2.4. 将"musl-gcc"加入环境变量
    • 3. linux静态编译
    • chapter Ⅲ 总结

      chapter Ⅰ 事情起因

      最近在学习rust, 想把一部分Java服务迁移至rust编写,但由于公司服务器都是linux系统,所以在找windows下交叉编译为linux可执行文件的方法,把bing首页搜索的结果试了个遍都不行, 始终报错“musl-gcc”无法找到,搜遍全网都无法解决。 最终在我不断尝试的过程中逐渐发现解决办法,遂将整个过程记录下来。

      chapter Ⅱ 安装方法(windows安装rust和vs code略过)

      1. 启用wsl 2

      根据微软的官方文档,使用下面的命令会默认安装wsl2 并下载linux镜像,整个过程可能会重启一到两次wsl --install微软官方文档: https://learn.microsoft.com/zh-cn/windows/wsl/install下载好后打开微软应用商店,输入你想装的linux版本,点击获取

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      下载好后可以点击启动或者打开,出现以下提示

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      不用理他,直接点击右上角的关闭,这样我们下次再打开就是使用的root用户,不会创建多余的用户和密码,当然也可以选择根据提示创建用户和密码,使用起来除了一些命令需要加sudo之外没有任何不同。

      2. 添加开发环境

      2.1. 打开rust官网,复制以下命令,安装rust工具链

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

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      安装完成后提android示说环境变量还没生效,手动source一下或者直接关掉重新启动子系统窗口

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      完成后运行rustu编程p -V查看一下rust的相关版本信息

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      2.2. 安装rust的linux静态编译工具,等待安装完成

      rustup target add x86_64-unknown-linux-musl因为我已经安装过所以显示如下图

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      2.3. 安装"musl-gcc"

      打开musl官网,https://musl.libc.org/ ,下载最新版的源代码

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      将下载的压缩包粘贴到子系统的home路径下(其他路径也可以)

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      直接复制粘贴,爽歪歪!!!进入子系统,cd /home,然后执行tar -zxvf musl-1.2.5.tar.gz解压缩,下载的哪个版本就解压哪个版本依次等待执行cd musl-1.2.5./configure, make, make install./configure运行后可能会出现这个提示说没有c编译器

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      不用慌,运行下面这条命令,安装开发套件,安装完毕后继续执行./configure以及后面的命令yum groupinsta编程ll "Development Tools"

      2.4. 将"musl-gcc"加入环境变量

      执行 vi /etc/profile, 将export PATH=$PATH:/usr/local/musl/bin/;加入到文件最后,关闭并保存

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      保存后关闭窗口,然后重新打开一个子系统窗口输入musl-gcc -v,如果正确显示版本信息,则表示已经安装成功

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      3. linux静态编js

      在主系统打开rust项目文件夹,按住shift键,点击鼠标右键,点击在此处打开linux shell

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      开始编译cargo build --release --target=x86_64-unknown-linux-musl等待编译完成,上传服务器,运行

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      enjoy it!

      chapter Ⅲ 总结

      因为以前没有编译过c++项目,所以对编译相关的知识知之甚少,通过本次的实践尝试,学到了一些编译链接的知识,留下一些微不足道的痕迹,希望对你有帮助。同时对于rust的编译工具链表示你在干什么,msvc模式下的控制台警告至今无法消除

      使用win10 wsl子系统如何将 rust 程序静态编译为linux可执行文件

      到此这篇关于使用win10 wsl子系统将 rust 程序静态编译为linux可执行文件的文章就介绍到这了,更多相关rust 程序静态编译为linux可执行文件内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

      0

      上一篇:

      下一篇:

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      最新运维

      运维排行榜