首页 > 其他分享 >关于Rust使用cross进行交叉编译,openssl报错

关于Rust使用cross进行交叉编译,openssl报错

时间:2024-10-29 20:14:07浏览次数:6  
标签:target 交叉 -- cross openssl 编译 报错

遇到错误详情 解决:使用cross交叉编译,确保已经安装好了openssl的相关依赖,但是依然报和openssl有关的错误,此时需要在 Cargo.toml 添加openssl的依赖 查看:https://github.com/sfackler/rust-openssl?tab=readme-ov-file

1 [dependencies]
2 openssl = { version = "0.10", features = ["vendored"] }

首先我在window平台上和window子系统Ubuntu上编译,使用 cross build --release 都是成功的,但是当我加入 --target=xxx.xxx.xx 参数的时候,就会报错,就没考虑是依赖的问题

关于rust交叉编译,有很多做了详细介绍,我对于原理也不是很懂,但还是记录下自己使用cross进行交叉编译的过程,实现过程还是比较简单的

查询支持的平台参数
1 # 查询可用的目标列表,已安装列表后边有(installed)
2 rustup target list
3 
4 # 列出所安装的Rust编译器已知的所有目标平台
5 rustc --print target-list
6 
7 # 查询已安装的编译器和toolchain
8 rustup show

 

添加 target

1 # 添加
2 rustup target add x86_64-unknown-linux-musl
  安装交叉编译工具
1 cargo install cross
  cargo/config.toml文件配置
1 [target.x86_64-unknown-linux-musl]
2 linker = "rust-lld"
3 rustflags = ["-C", "linker-flavor=ld.lld"]
4 
5 [target.x86_64-pc-windows-msvc]
6 # 没有这个配置,编译出来的包不能在例外一台电脑上运行(待验证)
7 rustflags = ["-C", "target-feature=+crt-static"]
  编译打包
1 cross build --release --target=x86_64-unknown-linux-musl

 

相关知识点

编译过程

交叉编译

cross

静态链接和动态链接   

 

  

  

  

  

标签:target,交叉,--,cross,openssl,编译,报错
From: https://www.cnblogs.com/lookthattree/p/18514310

相关文章

  • yolov5 train报错:TypeError: expected np.ndarray (got numpy.ndarray)
    前言macintel机器上,使用yolov5物体检测训练时报错:TypeError:expectednp.ndarray(gotnumpy.ndarray)这个错误信息TypeError:expectednp.ndarray(gotnumpy.ndarray)看起来有些奇怪,因为numpy.ndarray实际上就是np.ndarray。通常情况下,这种错误可能是由于库版本不......
  • 解决elementui中el-radio报错:Blocked aria-hidden on an element because its descend
    今天在使用elment中el-radio的时候发现控制台报错最开始以为是自己哪里写错了,但是后面上网查找的时候发现是浏览器的原因现在来说下解决办法1、可以使用这么一种组合来解决/deep/input[aria-hidden="true"]{display:none!important;}/deep/.el-radio:focus:no......
  • Laravel报错Call to undefined function Termwind\ValueObjects\mb_strimwidth()解
    Laravel报错CalltoundefinedfunctionTermwind\ValueObjects\mb_strimwidth()通常是因为php的mbstring扩展没有打开解决办法:搜索extension=mbstring去掉前面的;注释符即可,需要注意的是,Laravel开发环境通常是通过phpartisanserve命令运行在命令行中的,所以应该修改php环境......
  • 《Dead Cide Club死神俱乐部》报错大揭秘:innocallback.dll文件丢失的解决办法
    对于热爱《DeadCideClub死神俱乐部》这款游戏的玩家来说,遇到游戏报错,特别是提示“innocallback.dll文件丢失”时,无疑是一件令人沮丧的事情。然而,不必过于担心,本文将为你揭秘这一问题的原因,并提供详细的解决办法,帮助你迅速恢复游戏的正常运行。一、了解innocallback.dll文件......
  • Vue项目在安装依赖时报错:“this[kHandle] = new _Hash(algorithm, xofLen);“
    问题:Vue项目在安装依赖时报错:"this[kHandle]=new_Hash(algorithm,xofLen);"原因:这个错误通常是由于Node.js版本更新导致的。新版本的Node.js包含了OpenSSL3.0,它对加密算法和密钥大小有更严格的限制,可能会影响一些旧项目。解决方案:1.临时解决(需要每次启动时设置):......
  • 一个Internal server error 500的报错
    原文链接:一个Internalservererror500的报错–每天进步一点点某日在访问接口后,前台直接报了一个Internalservererror500,这种老生常谈的问题我以为很简单,于是看看接口和后台有没有抛出异常,结果发现,并没有!然后开始调试模式,结果发现后台接口在return数据前,数据是完整的,没有捕......
  • pg系数据库经典报错,no pg_hba.conf entry for host “x.x.x.x“, user “xxx“, datab
            上一篇文档述说了pg的一个经典报错“currenttransactionisaborted,commandsignoreduntilendoftransactionblock”【经典报错1】,这次再来述说一个pg系数据的经典报错。        pg系数据库指的是postgre、greenplum、国产数据中的kingbase、g......
  • Navicat连接数据库,报错信息:1045 -Access denied for user 'root'@'localhost'(using p
    错误解析错误信息:无法通过Navicat连接MySQL数据库。原因:MySQL服务未启动。解决方法检查MySQL服务状态打开“服务”管理器(可以在Windows中通过搜索“服务”来找到)。查找MySQL相关的服务,通常名称为MySQL或带有版本号的名称(如MySQL507)。启动MySQL服务如果发现MySQL......
  • 安装Oracle 23ai报错,求大佬指点
    {IDS_OracleConfigDlg_DatabaseConfigFailedMsg}Anerroroccurred whileconfiguringOracleFreedatabase.CheckthelogsatG:\Oracle_23ai\cfgtoollogs\dbcaandtryagain.【G:\Oracle_23ai\cfgtoollogs\dbca】log文件 正在对命令行参数进行语法分析:参数......
  • Watt Toolkit 报错:加速服务启动失败,443端口被 svnhttpsvc (4996) 占用
    问题描述WattToolkit(原名Steam++)启动加速时报错,显示443端口被svnhttpsvc(4996)占用了。svnhttpsvc是VisualSVNServer的一个应用程序,使用HTTPS协议,默认端口为443。在任务管理器(桌面底部任务栏右键打开)中搜索进程svnhttpsvc的PID4996可以看到svnhttpsvc是正......