温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

cargo编译musl报错openssl怎么办

发布时间:2021-07-09 16:54:35 来源:亿速云 阅读:612 作者:chen 栏目:大数据

本篇内容主要讲解“cargo编译musl报错openssl怎么办”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“cargo编译musl报错openssl怎么办”吧!

cargo编译musl报错openssl

背景

生产环境和编译环境的glibc版本不同出现来如下报错

/lib64/libc.so.6: version `GLIBC_x.xx' not found

所以需要使用cargo 跨平台编译x86_64-unknown-linux-musl,而后就报出来openssl相关的错误:

--- stderr
thread 'main' panicked at '

Could not find directory of OpenSSL installation, and this `-sys` crate cannot
proceed without this knowledge. If OpenSSL is installed and this crate had
trouble finding it,  you can set the `OPENSSL_DIR` environment variable for the
compilation process.

Make sure you also have the development packages of openssl installed.
For example, `libssl-dev` on Ubuntu or `openssl-devel` on Fedora.

If you're in a situation where you think the directory *should* be found
automatically, please open a bug at https://github.com/sfackler/rust-openssl
and include information about your system as well as this message.

$HOST = x86_64-unknown-linux-gnu
$TARGET = x86_64-unknown-linux-musl
openssl-sys = 0.9.48

原因

上文总结一句话:编译器没找到ssl的dev包,并给出来debian和red-hat的解决方法。但很可惜,我的编译环境是manjaro,没有libssl_dev类似的包

解决

对于debian/ubuntu就是

apt-get install libssl-dev

对于centos/fedora就是

yum install -y openssl-devel

对于Arch/manjaro,在确保安装openssl情况下

export OPENSSL_DIR=/usr

具体过程通过命令找到libssl.so文件路径(这里是/usr/lib/libsso.so)。编译时会连接OPENSSL_DIR/lib/libssl.so。因此这里的OPENSSL_DIR就是/usr了。

到此,相信大家对“cargo编译musl报错openssl怎么办”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI