交叉编译 Crypto++

概述

Crypto++ 是一个免费开源的 C++ 密码学库,由 Wei Dai(美籍华裔)首次开发,当前由 Crypto++ 项目团队维护,源代码在 github 上进行托管。

  • 官方网址:https://www.cryptopp.com/
  • github 网址:https://github.com/weidai11/cryptopp

下载

开发版本(最新)

如果以研究学习为目的,或者希望尝试最新特性,又或者希望参与到 Crypto++ 的开发中,可以直接从 github 上拉取最新源码,拉取命令:

git clone https://github.com/weidai11/cryptopp.git

技巧:在 github 页面点击右上角的 Code 按钮获取 git clone 链接。

发行版本

如果以商用量产为目的,一般选择正式的发行版本为佳。在 Crypto++ 的 Download 页面,源码以压缩包的形式提供,根据需求选择合适的版本进行下载,以最新的 Crypto++ 8.6.0 为例,在下载页面点击 Crypto++ 8.6.0 下载链接:

交叉编译

解压缩源码包,如果使用 git clone 拉回来的代码可以忽略这一步

unzip cryptopp860.zip -d cryptopp860

在开始进行交叉编译前建议先阅读一下 Readme.txtInstall.txt 这两份文件,其中 Readme.txt 文件主要介绍了 Crypto++ 的特性与版本历史,Install.txt 文件主要介绍了如何在各个平台进行编译安装的细节,当前也包括如何进行交叉编译。
相对而言,对 Crypto++ 进行交叉编译还是比较简单的,因为 Crypto++ 库使用的是 Makefile 进行编译,只需要在执行 make 命令前配置 CXX 环境变量即可。
参考 Install.txt 第 60, 61 行:

Install.txt
----------------
export CXX=/opt/intel/bin/icpc
make

其中的 /opt/intel/bin/icpc 即是 C++ 交叉编译器的路径,比如我的配置是:

export CXX=/sdk/toolchains/aarch64--glibc--stable-2020.08-1/bin/aarch64-linux-g++
make

编译好之后执行 make install 进行输出:

make install PREFIX=/tmp/cryptopp

最后会在 /tmp/cryptopp 目录下会产生四个文件夹,makefile 文件将交叉编译生成的 cryptest.exe 拷贝到 bin 目录,头文件拷贝到 include/cryptopp 目录,静态库文件拷贝到 lib 目录,以及测试数据拷贝到 share/cryptopp 目录。对于依赖 libcryptopp 库的开发而言,只需要关注 includelib 两目录即可。

最后总结一下整个交叉编译过程的命令是:

export CXX=/sdk/toolchains/aarch64--glibc--stable-2020.08-1/bin/aarch64-linux-g++
make
make install PREFIX=/tmp/cryptopp
  • 配置好 CXX 环境变量,指定交叉编译器的实际路径
  • 执行 make 命令进行交叉编译
  • 执行 make install 命令将编译产物拷贝到指定目录

编译成动态库

默认情况下,make 生成的是静态库 libcryptopp.a,如果需要生成动态库需要执行:

make dynamic

或者

make libcryptopp.so

△\triangle△ 交叉编译 JsonCpp 库
▽\bigtriangledown▽ QNX 7.1 交叉编译 boost 1.76

交叉编译 Crypto++相关推荐

  1. linux curl编译 arm交叉编译

    虚拟机环境 ubuntu12.04 开发板 EasyARM-i.MX280A:   64m  sdram  128M  nandflash   运行官方提供的Linux-2.6.35.3内核linux ...

  2. 【Android 安装包优化】使用 lib7zr.a 静态库处理压缩文件 ( 交叉编译 lib7zr.a 静态库 | 安卓工程导入静态库 | 配置 CMakeLists.txt 构建脚本 )

    文章目录 一.修改 7zr 交叉编译脚本 Android.mk 二.完整的 7zr 交叉编译脚本 Android.mk 三.交叉编译 lib7zr.a 静态库 四.Android Studio 导入 ...

  3. 【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 修改 7zr 交叉编译脚本 Android.mk | 交叉编译 lib7zr.so 动态库 )

    文章目录 一.修改 7zr 交叉编译脚本 Android.mk 二.完整的 7zr 交叉编译脚本 Android.mk 三.交叉编译 lib7zr.so 动态库 四.参考资料 一.修改 7zr 交叉编 ...

  4. 【Android RTMP】RTMPDumb 源码导入 Android Studio ( 交叉编译 | 配置 CMakeList.txt 构建脚本 )

    文章目录 安卓直播推流专栏博客总结 一. RTMP 协议 二. RTMP 协议使用 三. RTMPDump 源码下载 四. RTMPDump 源码交叉编译 五. RTMPDump 源码导入 Andro ...

  5. Golang 交叉编译

    各平台的GOOS和GOARCH参考 OS ARCH OS version linux 386 / amd64 / arm >= Linux 2.6 darwin 386 / amd64 OS X ...

  6. linux fips 模式,linux – FIPS Capable OpenSSL交叉编译:内容指纹问题

    我在尝试使用在MIPS设备上编译为FIPS的OpenSSL共享库(libcrypto)时遇到问题. 我以下面的方式交叉编译FIPS对象模块,然后是OpenSSL库(总结): export FIPS_S ...

  7. openssl 的编译(linux、Ubuntu) 和 交叉编译(arm、Hi3531A)的问题分析、解决

    目录 一.编译环境及准备材料 二.Ubuntu下编译openssl 三.交叉编译 openssl 一.编译环境及准备材料 1.编译环境: 1.1.Ubuntu环境 - ubuntu 14.04.1 $ ...

  8. Ubuntu下mingw和aarch64交叉编译x264/x265/openssl/freetype2的ffmpeg

    1.ffmpeg下载 前往ffmpeg官网下载地址下载需要的最新ffmpeg发布版本 2.ffmpeg编译选项说明 在ffmpeg官网中有对ffmpeg编译选项的部分说明内容如下: --enable- ...

  9. linux交叉编译nss3,nspr

    文章目录 交叉编译nss库 nss以及依赖库下载地址 交叉编译nspr流程 交叉编译nss流程 可能遇到的其他错误 交叉编译nss库 编译QT时发现要求NSS >= 3.26 is requir ...

最新文章

  1. MFC最小化到系统托盘
  2. MIN()与MAX()函数 的注意事项
  3. android通过webservice连接SQL数据库(二)客户端
  4. php统计变量的位数,php实现统计二进制中1的个数算法示例
  5. 专利:结构化大数据通信协议
  6. 使用Java 8流遍历递归数据结构
  7. linux 下 storm环境搭建,Storm在Ubuntu环境下的单机部署
  8. oh-my-zsh官方教程
  9. jQuery获得select的值及其他操作
  10. Java基础知识回顾--网络编程基础
  11. 蓝桥杯 ALGO-142 算法训练 P1103
  12. 随笔:刚放出的那个存储“神器”,是否一场鸡血式狂欢
  13. php dht爬虫,利用DHT网络,爬取bt种子。
  14. 计算机专业文书范文,美国留学文书技巧-美国计算机专业博士的申请个人陈述范文...
  15. 练习 颈部肌肉重要性及锻炼方法
  16. Vue学习记录07--vue路由的使用
  17. LAMP兄弟连-招募PHP技术讲师
  18. 从简易的json中提取数据
  19. CSS 字符间距letter-spacing属性
  20. mysql gis polygon_把POLYGON转换到MULTIPOLYGON 中

热门文章

  1. python nltk是什么_Python文本处理nltk基础
  2. 《缠中说禅108课》26:市场风险如何回避
  3. 深圳阿里电商老大背后的短板与突破
  4. 医学论文中译英,sci医学论文翻译哪家好
  5. “四大名旦”如何唱红上海滩?(图)
  6. java —— 笨小猴
  7. 外汇交易中的货币相关性
  8. 对程序员超有用的网站!一定要收藏起来!
  9. 9.1 两个哭泣的婴儿:软分叉与硬分叉
  10. 【9】Palindrome Number