如何使用RUST做静态编译,让编译出来的程序不再依赖其他库?

Posted kimkat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用RUST做静态编译,让编译出来的程序不再依赖其他库?相关的知识,希望对你有一定的参考价值。

在编译RUST CLI之后,发给客户,如果客户的电脑没有安装相应的依赖,那会运行不了,那如何让RUST程序自带干粮,不依赖这些七七八八的库呢?

如果你用的是RUST GNU版本,那可以直接发给客户,本身就自带了依赖项,不会有问题,本文主要说的是MSVC版本的RUST:

找到 ~/.cargo/config文件,如果没有,请自己创建,然后加入以下代码,就启用静态编译了:

 [target.x86_64-pc-windows-msvc]
rustflags = ["-C", "target-feature=+crt-static"]

 

如下:如果用DIE软件来检测出你写出的RUST程序的依赖,加载exe文件后,点Import,发现只依赖系统自带的dll动态链接库,因此客户不用再安装其他dll了。

技术图片技术图片

以上是关于如何使用RUST做静态编译,让编译出来的程序不再依赖其他库?的主要内容,如果未能解决你的问题,请参考以下文章

静态库(.a)文件怎么拆分成(.o)文件

交叉编译和静态链接 RUST 库

抢先一步,Rust构建版支持直接编译WebAssembly

Rust交叉编译和不依赖glic之类的编译(内嵌这些依赖库)

Rust交叉编译和不依赖glic之类的编译(内嵌这些依赖库)

用Rust编写LLVM的玩具编译器