OpenIPMP中Cryptopp库的重编译
来源:互联网 发布:个人域名备案需要多久 编辑:程序博客网 时间:2024/05/17 07:37
author: A.TNG <jiyucn@163.com>
一直在琢磨怎么把OpenIPMP的东西成功的放到嵌入式开发板上。
OpenIPMP中使用了很多外部库,都是开源的项目,其中的Crypto++是一个与密码学相关的库,支持许多算法,应该负责对多媒体文件的加密和解密功能。
通 过比较OpenIPMP中/ext/Crypt++/include/*.h与Crypto++各个较新版本的头文件,发现OpenIPMP使用的版本是 5.2.x。下载了对应版本(Version 5.2.1)的源代码后,曾尝试在Fedora5下编译libcryptopp.a,出现很多编译错误,如下:
make: Warning: File `GNUmakefile' has modification time 8.7e+05 s in the future
g++ -g -msse2 -I../../include -pipe -c 3way.cpp
../../include/seckey.h: In function avoid CryptoPP::CheckedSetKey(T*, CryptoPP::CipherDir, const byte*, unsigned int, const CryptoPP::NameValuePairs&) [with T = CryptoPP::BlockCipherFinal<DECRYPTION, CryptoPP::ThreeWay::Dec>]a:
../../include/seckey.h:179: instantiated from avoid CryptoPP::BlockCipherFinal<DIR, BASE>::SetKey(const byte*, unsigned int, const CryptoPP::NameValuePairs&) [with CryptoPP::CipherDir DIR = DECRYPTION, BASE = CryptoPP::ThreeWay::Dec]a
3way.cpp:139: instantiated from here
../../include/seckey.h:137: error: no matching function for call to aCryptoPP::BlockCipherFinal<DECRYPTION, CryptoPP::ThreeWay::Dec>::UncheckedSetKey(CryptoPP::CipherDir&, const byte*&, unsigned int&)a
3way.cpp:64: note: candidates are: void CryptoPP::ThreeWay::Base::UncheckedSetKey(CryptoPP::CipherDir, const byte*, unsigned int, unsigned int)
../../include/seckey.h: In function avoid CryptoPP::CheckedSetKey(T*, CryptoPP::CipherDir, const byte*, unsigned int, const CryptoPP::NameValuePairs&) [with T = CryptoPP::BlockCipherFinal<ENCRYPTION, CryptoPP::ThreeWay::Enc>]a:
../../include/seckey.h:179: instantiated from avoid CryptoPP::BlockCipherFinal<DIR, BASE>::SetKey(const byte*, unsigned int, const CryptoPP::NameValuePairs&) [with CryptoPP::CipherDir DIR = ENCRYPTION, BASE = CryptoPP::ThreeWay::Enc]a
3way.cpp:139: instantiated from here
../../include/seckey.h:137: error: no matching function for call to aCryptoPP::BlockCipherFinal<ENCRYPTION, CryptoPP::ThreeWay::Enc>::UncheckedSetKey(CryptoPP::CipherDir&, const byte*&, unsigned int&)a
3way.cpp:64: note: candidates are: void CryptoPP::ThreeWay::Base::UncheckedSetKey(CryptoPP::CipherDir, const byte*, unsigned int, unsigned int)
make: *** [3way.o] Error 1
错误的地方大概是在seckey.h中
template <class T>
static inline void CheckedSetKey(T *obj, CipherDir dir, const byte *key, unsigned int length, const NameValuePairs ¶m)
{
obj->ThrowIfInvalidKeyLength(length);
obj->UncheckedSetKey(dir, key, length); // UncheckedSetKey 未定义
}
查看当前使用的gcc版本为4.1.1。尔后尝试在Redhat9下编译,查看gcc版本为3.2.2,并且编译成功。猜测与编译对模板的支持不同有关,对于5.2.1版本,没有找到合适的解决方法,建议使用5.3或者更高版本。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1624048
- OpenIPMP中Cryptopp库的重编译
- VS2013 cryptopp 库编译LIB问题
- VS2003.Net下OpenIPMP的OMADRMTest.sln的编译注意事项
- openipmp
- cryptopp++的配置
- Cryptopp密码库在Linux下的安装与使用
- CryptoPP-5.6.1的RPM
- 第三方库zlib、crytpo、cryptopp、openssl、libcurl、libxml2、libghttp等编译
- 移植cryptopp 5.6.2版本到ARM中需要进行的GNUmakefile 修改:
- 应用Cryptopp库实现AES加密【转】
- Crypto++(CryptoPP)库初始化以及使用注意事项
- 第二次调试 OpenIPMP并初步成功的记录
- openipmp安装
- 在Oracle中重编译所有无效的存储过程
- 存储过程的重编译
- CryptoPP 使用方法
- Cryptopp使用
- Cryptopp使用
- OMA DRM 1.0 – OMA Download 框架
- C#中ref和out的使用小结
- 调查:主流手机操作系统对OMA DRM的支持
- OMA DRM V1.0学习笔记
- Linux环境下USB的原理、驱动和配置
- OpenIPMP中Cryptopp库的重编译
- 《游戏编程》第一部 基础篇
- OpenIPMP组件列表
- OpenIPMP中的几个关键概念
- ASP.NET定义主题和外观
- Media-S 简介(一个开源的DRM解决方案)
- EasyMock的应用
- 数据库 字符串操作1
- 纠正对call stack的错误的认识