Linux aarch64交叉编译之 cryptopp加密库
Posted AGS_wangdsh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux aarch64交叉编译之 cryptopp加密库相关的知识,希望对你有一定的参考价值。
对于cryptopp项目的交叉编译。该文章的目标是编译一套aarch64 Linux Debian嵌入式版本上可以运行的版本库,接下来就开始趟坑。老套路,先把linux桌面版搞好,然后 移植到嵌入式Linux Debian 板子上。
1 cryptopp简介
Crypto是一个C++ 加密方案类库,简而言之,就是一个算法库。该库包含了以下算法:
cryptopp 官网 截图
支持的算法还是蛮多的,一般我们常见的MD5、SHA、RSA都有。当然,第一次下载cryptopp这个库 ,头这个大阿,头文件、源文件都混在 项目根目录下,一看就是有年代的东西了,于是看了下这个库的起源... 原来是2002年的老古董。迄今为止20年的历史了。说明可靠性还是可以的。接下来搞起来~,cryptopp 学习和使用 常见网站总结下:
- cryptopp官方首页学习:Free C++ Class Library of Cryptographic Schemes
- cryptopp Linux版本编译参考::Crypto++ Wiki Linux Build
- cryptopp 嵌入式Linux版本编译参考:Crypto++ Wiki ARM Embedded Build
- cryptopp项目下载地址:https://github.com/weidai11/cryptopp
2 Linux 本地编译 & 交叉编译
2.1 Linux(ubuntu20.04)上cryptopp的编译
这个老古董编译还是很方便的,直接进来 make 或者 make static就行。如果想编译动态库就直接执行 make shared即可。当然,也可以使用make GNUmakefile。总结如下:
#1 编译
#静态库编译
$make
或者
$make static
#动态库编译
$make shared
#多线程直接编译,出来默认也是静态库
$make -f GNUmakefile -j24
#2 安装
make install PREFIX=out_x86_64
这个编译流程 还是很感人的~~~大家自行体会。最后生成的lib库内容为:
├── libcryptopp.a
├── libcryptopp.so -> libcryptopp.so.8.7.0
├── libcryptopp.so.8 -> libcryptopp.so.8.7.0
└── libcryptopp.so.8.7.0
说明:一般情况下cryptopp库是使用静态库较多且稳定性 可靠性也都是刚刚滴~。
2.2 aarch64交叉编译与移植
因为是用aarch64交叉编译,需要提前配置环境,安装如下软件:
sudo apt install binutils-aarch64-linux-gnu-dbg binutils-aarch64-linux-gnu cpp-aarch64-linux-gnu \\
g++-10-aarch64-linux-gnu g++-9-aarch64-linux-gnu g++-aarch64-linux-gnu g++ \\
gcc-10-aarch64-linux-gnu-base gcc-9-aarch64-linux-gnu-base gcc-aarch64-linux-gnu \\
pkg-config-aarch64-linux-gnu qemu-efi-aarch64 gcc arch-test
对于cryptopp的交叉编译就简单很多了,只需要执行
export CXX=aarch64-linux-gnu-g++
之后 和linux桌面版的编译方式一致,区分开安装目录,如下:
#1 编译
#静态库编译
$make 或者 $make static
#动态库编译
$make shared
#2 安装
make install PREFIX=out_aarch64
以上是关于Linux aarch64交叉编译之 cryptopp加密库的主要内容,如果未能解决你的问题,请参考以下文章
Linux aarch64交叉编译之 nodejs js运行时环境
aarch64-linux-gnu-g++ 交叉编译为 arm64 错误