交叉编译 Crypto++
交叉编译 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.txt
与 Install.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 库的开发而言,只需要关注 include
及 lib
两目录即可。
最后总结一下整个交叉编译过程的命令是:
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++相关推荐
- linux curl编译 arm交叉编译
虚拟机环境 ubuntu12.04 开发板 EasyARM-i.MX280A: 64m sdram 128M nandflash 运行官方提供的Linux-2.6.35.3内核linux ...
- 【Android 安装包优化】使用 lib7zr.a 静态库处理压缩文件 ( 交叉编译 lib7zr.a 静态库 | 安卓工程导入静态库 | 配置 CMakeLists.txt 构建脚本 )
文章目录 一.修改 7zr 交叉编译脚本 Android.mk 二.完整的 7zr 交叉编译脚本 Android.mk 三.交叉编译 lib7zr.a 静态库 四.Android Studio 导入 ...
- 【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 修改 7zr 交叉编译脚本 Android.mk | 交叉编译 lib7zr.so 动态库 )
文章目录 一.修改 7zr 交叉编译脚本 Android.mk 二.完整的 7zr 交叉编译脚本 Android.mk 三.交叉编译 lib7zr.so 动态库 四.参考资料 一.修改 7zr 交叉编 ...
- 【Android RTMP】RTMPDumb 源码导入 Android Studio ( 交叉编译 | 配置 CMakeList.txt 构建脚本 )
文章目录 安卓直播推流专栏博客总结 一. RTMP 协议 二. RTMP 协议使用 三. RTMPDump 源码下载 四. RTMPDump 源码交叉编译 五. RTMPDump 源码导入 Andro ...
- Golang 交叉编译
各平台的GOOS和GOARCH参考 OS ARCH OS version linux 386 / amd64 / arm >= Linux 2.6 darwin 386 / amd64 OS X ...
- linux fips 模式,linux – FIPS Capable OpenSSL交叉编译:内容指纹问题
我在尝试使用在MIPS设备上编译为FIPS的OpenSSL共享库(libcrypto)时遇到问题. 我以下面的方式交叉编译FIPS对象模块,然后是OpenSSL库(总结): export FIPS_S ...
- openssl 的编译(linux、Ubuntu) 和 交叉编译(arm、Hi3531A)的问题分析、解决
目录 一.编译环境及准备材料 二.Ubuntu下编译openssl 三.交叉编译 openssl 一.编译环境及准备材料 1.编译环境: 1.1.Ubuntu环境 - ubuntu 14.04.1 $ ...
- Ubuntu下mingw和aarch64交叉编译x264/x265/openssl/freetype2的ffmpeg
1.ffmpeg下载 前往ffmpeg官网下载地址下载需要的最新ffmpeg发布版本 2.ffmpeg编译选项说明 在ffmpeg官网中有对ffmpeg编译选项的部分说明内容如下: --enable- ...
- linux交叉编译nss3,nspr
文章目录 交叉编译nss库 nss以及依赖库下载地址 交叉编译nspr流程 交叉编译nss流程 可能遇到的其他错误 交叉编译nss库 编译QT时发现要求NSS >= 3.26 is requir ...
最新文章
- MFC最小化到系统托盘
- MIN()与MAX()函数 的注意事项
- android通过webservice连接SQL数据库(二)客户端
- php统计变量的位数,php实现统计二进制中1的个数算法示例
- 专利:结构化大数据通信协议
- 使用Java 8流遍历递归数据结构
- linux 下 storm环境搭建,Storm在Ubuntu环境下的单机部署
- oh-my-zsh官方教程
- jQuery获得select的值及其他操作
- Java基础知识回顾--网络编程基础
- 蓝桥杯 ALGO-142 算法训练 P1103
- 随笔:刚放出的那个存储“神器”,是否一场鸡血式狂欢
- php dht爬虫,利用DHT网络,爬取bt种子。
- 计算机专业文书范文,美国留学文书技巧-美国计算机专业博士的申请个人陈述范文...
- 练习 颈部肌肉重要性及锻炼方法
- Vue学习记录07--vue路由的使用
- LAMP兄弟连-招募PHP技术讲师
- 从简易的json中提取数据
- CSS 字符间距letter-spacing属性
- mysql gis polygon_把POLYGON转换到MULTIPOLYGON 中