当前位置:网站首页>交叉编译 Crypto++
交叉编译 Crypto++
2022-08-09 14:58:00 【iBlackAngel】
交叉编译 Crypto++
概述
Crypto++ 是一个免费开源的 C++ 密码学库,由 Wei Dai(美籍华裔)首次开发,当前由 Crypto++ 项目团队维护,源代码在 github 上进行托管。
下载
开发版本(最新)
如果以研究学习为目的,或者希望尝试最新特性,又或者希望参与到 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
边栏推荐
猜你喜欢
随机推荐
深入浅出最优化(6) 最小二乘问题的特殊方法
【工具使用】Keil5软件使用-进阶工程配置篇
基于MTCNN和FaceNet的实时人脸检测识别系统
MouStart指纹浏览器怎么防关联
[Deep learning] attention mechanism
研究生工作周报(第六周)
hugging face tutorial-Chinese translation-pipeline-based reasoning
图解转置卷积原理
Why learn the principles of compiling
你知道亚马逊代运营的成本是多少吗?
如何防止浏览器指纹关联
【工具使用】Modbus Poll软件使用详解
hugging face tutorial - Chinese translation - sharing custom model
地铁预约Postman脚本使用
响应式布局总结
【学习笔记】win10报0xc0000221错误无法开机
链游是什么意思 链游和游戏的区别是什么
【研究生工作周报】(第八周)
关于初级程序员职场如何提升技能的几点建议?
封装仿支付宝密码输入效果