• Linux aarch64交叉编译之 cryptopp加密库


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

    1 cryptopp简介

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

    cryptopp 官网 截图

    支持的算法还是蛮多的,一般我们常见的MD5、SHA、RSA都有。当然,第一次下载cryptopp这个库 ,头这个大阿,头文件、源文件都混在 项目根目录下,一看就是有年代的东西了,于是看了下这个库的起源... 原来是2002年的老古董。迄今为止20年的历史了。说明可靠性还是可以的。接下来搞起来~,cryptopp 学习和使用 常见网站总结下:

    2 Linux 本地编译 & 交叉编译

    2.1 Linux(ubuntu20.04)上cryptopp的编译

    这个老古董编译还是很方便的,直接进来 make 或者 make static就行。如果想编译动态库就直接执行 make shared即可。当然,也可以使用make GNUmakefile。总结如下:

    1. #1 编译
    2. #静态库编译
    3. $make
    4. 或者
    5. $make static
    6. #动态库编译
    7. $make shared
    8. #多线程直接编译,出来默认也是静态库
    9. $make -f GNUmakefile -j24
    10. #2 安装
    11. make install PREFIX=out_x86_64

    这个编译流程 还是很感人的~~~大家自行体会。最后生成的lib库内容为:

    1. ├── libcryptopp.a
    2. ├── libcryptopp.so -> libcryptopp.so.8.7.0
    3. ├── libcryptopp.so.8 -> libcryptopp.so.8.7.0
    4. └── libcryptopp.so.8.7.0

    说明:一般情况下cryptopp库是使用静态库较多且稳定性 可靠性也都是刚刚滴~。

    2.2 aarch64交叉编译与移植

    因为是用aarch64交叉编译,需要提前配置环境,安装如下软件:

    1. sudo apt install binutils-aarch64-linux-gnu-dbg binutils-aarch64-linux-gnu cpp-aarch64-linux-gnu \
    2. g++-10-aarch64-linux-gnu g++-9-aarch64-linux-gnu g++-aarch64-linux-gnu g++ \
    3. gcc-10-aarch64-linux-gnu-base gcc-9-aarch64-linux-gnu-base gcc-aarch64-linux-gnu \
    4. pkg-config-aarch64-linux-gnu qemu-efi-aarch64 gcc arch-test

    对于cryptopp的交叉编译就简单很多了,只需要执行

    export CXX=aarch64-linux-gnu-g++

    之后 和linux桌面版的编译方式一致,区分开安装目录,如下:

    1. #1 编译
    2. #静态库编译
    3. $make 或者 $make static
    4. #动态库编译
    5. $make shared
    6. #2 安装
    7. make install PREFIX=out_aarch64

  • 相关阅读:
    SpringBoot常用注解释义
    RabbitMQ-发布确认(高级)、零碎概念(幂等性/惰性队列/集群)
    83页智慧小区智能化设计方案
    简单自定义MVC优化
    Go 运算符
    word软件中硬件图像加速有什么用处?禁用硬件图形加速(G)会影响word文档中插入图片的分辨率吗?
    流媒体播放器EasyPlayer.js无法播放H.265的情况是什么原因?该如何解决?
    滚珠螺母的生产流程
    xpath获取带命名空间节点注意事项
    webpack配置全局scss
  • 原文地址:https://blog.csdn.net/vviccc/article/details/126230839