Linux aarch64交叉编译之 cryptopp加密库

Posted AGS_wangdsh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux aarch64交叉编译之 cryptopp加密库相关的知识,希望对你有一定的参考价值。


对于cryptopp项目的交叉编译。该文章的目标是编译一套aarch64 Linux Debian嵌入式版本上可以运行的版本库,接下来就开始趟坑。老套路,先把linux桌面版搞好,然后 移植到嵌入式Linux Debian 板子上。

1 cryptopp简介

Crypto是一个C++ 加密方案类库,简而言之,就是一个算法库。该库包含了以下算法:


Linux

cryptopp 官网 截图

支持的算法还是蛮多的,一般我们常见的MD5、SHA、RSA都有。当然,第一次下载cryptopp这个库 ,头这个大阿,头文件、源文件都混在 项目根目录下,一看就是有年代的东西了,于是看了下这个库的起源... 原来是2002年的老古董。迄今为止20年的历史了。说明可靠性还是可以的。接下来搞起来~,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交叉编译之glm数学库

Linux aarch64交叉编译之 nodejs js运行时环境

aarch64-linux-gnu-g++ 交叉编译为 arm64 错误

Ubuntu arm 交叉编译 and snapcraft

交叉编译Opencv的教程——基于aarch64-linux-gnu的交叉编译器

aarch64-linux-gnu-gcc 交叉编译工具链安装演示