当前位置: 首页 > web >正文

rust程序静态编译的两种方法总结

1. 概述

经过我的探索,总结了两种rust程序静态编译的方法,理论上两种方法都适用于windows、mac os和linux(mac os未验证),实测方法一性能比方法二好,现总结如下,希望能够帮到你.

2.方法一

2.1 添加配置文件

在项目的同级文件夹下新建“.cargo/config.toml”文件,根据使用的系统,添加下面的配置

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

#linux
[target.x86_64-unknown-linux-gnu]
rustflags = ["-C", "target-feature=+crt-static"]

理论上mac os也可以,将[target.x86_64-unknown-linux-gnu]替换为自己使用的工具链就可以了

2.2 打包运行

2.2.1 winsows

在windows下运行cargo build --release就可以直接打包为静态链接的程序了;

2.2.2 linux

在linux下运行cargo build --release --target=x86_64-unknown-linux-gnu,可能会出现如下提示/usr/bin/ld: cannot find -lxxx,这是缺少gcc-libc的静态库文件需要安装的有两个glibc-staticlibstdc++-static;在这里可以找到这两个静态库: https://oraclelinux.pkgs.org/这里是oracle linux9 的链接:https://oraclelinux.pkgs.org/9/ol9-codeready-builder-x86_64/glibc-static-2.34-125.0.1.el9_5.8.x86_64.rpm.html, https://oraclelinux.pkgs.org/9/ol9-codeready-builder-x86_64/libstdc++-static-11.5.0-5.0.1.el9_5.x86_64.rpm.html

注意要选择自己对应的系统!!!

页面向下拉,有个install howto 的标题,直接运行里面的命令(如截图里的dnf --enablerepo=ol9_codeready_builder install libstdc++-static)就可以安装了,安装完就可以愉快的打包了;

image

3.方法二

此方法为使用musl库打包为静态链接,参考我的另一篇文章,实测该方法打包的静态文件性能会比gcc稍差一点;使用musl将rust程序静态编译

4.总结

优先推荐使用方法一,但据网友说方法一某些库无法成功打包,此时可以考虑采用方法二的方式打包,但会有性能损失,需自行考量。

文章转载自:Jiajie6591

原文链接:rust程序静态编译的两种方法总结 - Jiajie6591 - 博客园

体验地址:JNPF快速开发平台

http://www.xdnf.cn/news/4694.html

相关文章:

  • 手势、鼠标滑动实现界面切换
  • 介绍Unity中的Dictionary
  • npm包之serve-favicon
  • flow-matching 之学习matcha-tts cosyvoice
  • 集团云解决方案:集团企业IT基础架构的降本增效利器
  • RAG技术在测试用例生成中的应用
  • FAST角点检测算法原理附C++代码实现
  • HarmonyOS NEXT之深度解析ArkUI自定义组件:从基础实现到生产级登录组件的进化之路
  • 复盘20250508
  • CSS:元素显示模式与背景
  • 【Java ee 初阶】文件IO和操作(下)
  • 系统架构-面向服务架构(SOA)
  • 【嵌入式开发-SPI】
  • 常见的提示词攻击方法 和防御手段——提示词注入(Prompt Injection)攻击解析
  • 了解Dockerfile
  • 【计算机网络 第8版】谢希仁编著 第四章网络层 题型总结2
  • 如何用分布式防御抵扣大规模DDoS攻击?
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】电商数据分析案例-9.2 流量转化漏斗分析
  • 前端实战中的单例模式:以医疗药敏管理为例
  • [论文笔记] 超详细解读DeepSeek v3全论文技术报告
  • 零基础入门Hadoop:IntelliJ IDEA远程连接服务器中Hadoop运行WordCount
  • TDEngine 与 Grafana
  • 从零开始在亚马逊云科技 EC2上部署DeepSeek R1大语言模型:完整实战指南
  • Linux 网络命名空间:从内核资源管理到容器网络隔离
  • 算法与数据结构 - 常用图算法总结
  • 观测云:安全、可信赖的监控观测云服务
  • 《React Native性能优化:从卡顿到丝滑的蜕变之旅》
  • 菊厂笔试1
  • Django rest_framework 信号机制生成并使用token
  • SSH 服务部署指南