当前位置:   article > 正文

linux交叉编译windows_「编译工具」rust交叉编译的使用方法

filosottile/musl-cross/musl-cross下载

写程序时,很多时候一般都在本地电脑上写,本地电脑系统有可能是Mac电脑,windows电脑。与线上的系统存在不匹配的问题。这时就需要用到交叉编译,把本地电脑的程序通过交叉编译环境编译成线上服务对应系统版本的可执行程序。

用到交叉编译

  • C、C++交叉编译,如果进行嵌入式开发时,需要arm-linux-gcc交叉编译;
  • 使用GO语言时,把本地代码编译成线上系统可执行的二进制文件时,需要用到交叉编译 :GO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
c7ed335a08b009857ed3061f16df5c6b.png

大致过程就是这样的本地系统:mac系统
目标系统:centos(linux)系统
语言:rust

具体操作步骤如下

1)安装brew包管理工具
如果安装了,忽略
执行下面命令:

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2)安装musl-cross 工具
musl-cross 是用来专门编译到 linux 的工具链
ingw-w64 是用来编译到 windows 的工具链

$ brew install FiloSottile/musl-cross/musl-cross  $ brew install mingw-w64  

3)在~/.cargo/config配置参数
在该文件的末尾加上下面这条交叉编译工具

[target.x86_64-unknown-linux-musl]linker = "x86_64-linux-musl-gcc"

4)rustup安装
rustup 是 Rust 的包管理工具,用它来配置工具链可以很省心

$ curl https://sh.rustup.rs -sSf | sh

5) 查看支持的目标平台

$ rustup target list

可以看到rust支持的平台非常多,iOS,arm,x86(window系统)等等

aarch64-apple-iosaarch64-fuchsiaaarch64-linux-androidaarch64-pc-windows-msvcaarch64-unknown-cloudabiaarch64-unknown-linux-gnuaarch64-unknown-linux-muslarm-linux-androideabiarm-unknown-linux-gnueabiarm-unknown-linux-gnueabihfarm-unknown-linux-musleabiarm-unknown-linux-musleabihfarmebv7r-none-eabiarmebv7r-none-eabihfarmv5te-unknown-linux-gnueabiarmv5te-unknown-linux-musleabiarmv7-apple-iosarmv7-linux-androideabiarmv7-unknown-linux-gnueabihfarmv7-unknown-linux-musleabihfarmv7r-none-eabiarmv7r-none-eabihfarmv7s-apple-iosasmjs-unknown-emscripteni386-apple-iosi586-pc-windows-msvci586-unknown-linux-gnui586-unknown-linux-musli686-apple-darwini686-linux-androidi686-pc-windows-gnui686-pc-windows-msvci686-unknown-freebsdi686-unknown-linux-gnui686-unknown-linux-muslmips-unknown-linux-gnumips-unknown-linux-muslmips64-unknown-linux-gnuabi64mips64el-unknown-linux-gnuabi64mipsel-unknown-linux-gnumipsel-unknown-linux-muslpowerpc-unknown-linux-gnupowerpc64-unknown-linux-gnupowerpc64le-unknown-linux-gnuriscv32imac-unknown-none-elfriscv32imc-unknown-none-elfs390x-unknown-linux-gnusparc64-unknown-linux-gnusparcv9-sun-solaristhumbv6m-none-eabithumbv7em-none-eabithumbv7em-none-eabihfthumbv7m-none-eabiwasm32-unknown-emscriptenwasm32-unknown-unknown (installed)x86_64-apple-darwin (default)x86_64-apple-iosx86_64-fuchsiax86_64-linux-androidx86_64-pc-windows-gnux86_64-pc-windows-msvcx86_64-rumprun-netbsdx86_64-sun-solarisx86_64-unknown-cloudabix86_64-unknown-freebsdx86_64-unknown-linux-gnux86_64-unknown-linux-gnux3212345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

6)安装第三条在config配置的target.x86_64-unknown-linux-musl工具

$ rustup target add x86_64-unknown-linux-musl

7) 准备源代码进行交叉编译

$ cargo build --target=x86_64-unknown-linux-musl

8) 把编译好的程序放到对应的系统上去执行

06797167d68f74afeaf273aca8f90fb7.png

如果想编译其它系统的可执行文件,方法同理。资源下载
[资源下载]https://github.com/ai-word

bebdf36df0a17228d98ddc96ba6543ae.png
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/533425
推荐阅读
相关标签
  

闽ICP备14008679号