首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置crypto++

设置crypto++
EN

Stack Overflow用户
提问于 2015-05-23 11:41:40
回答 2查看 1.9K关注 0票数 3

我下载了crypto++ 5.6.2 (压缩文件)并仅使用make构建了它(我有gcc 4.8.1)。它似乎起作用了,给了我一个libcryptopp.a文件。

现在,为了测试安装程序,我尝试编译下载时提供的test.cpp文件(这里的链接:source.html)。

首先,我用

g++ -Wall -std=c++11 -g -Iinclude -I/c/libraries/cryptopp562 -c test.cpp -o obj/test.o

它给出了很多警告(大部分是不推荐的和未使用的变量),但是有效了,我得到了test.o文件。

现在,为了连接它,我用

g++ obj/test.o -o bin/test -L/c/libraries/cryptopp562 -lcryptopp

但是这给了很多undefined reference错误,并且失败了。

例如

D:\.../test.cpp:119: undefined reference to `RegisterFactories()'

但是,当您查看test.cpp文件(source.html)时,只有对RegisterFactories()的声明,而没有定义。这是否意味着,它需要从图书馆找到它?(在这种情况下不应该需要本地声明,不是吗?)

好吧,那我该怎么做才能让整个图书馆开始工作呢?使用gmake来构建它?还是使用较旧的gcc?或者我的编译/链接命令不正确?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-23 20:49:17

设置crypto++

在Linux下安装Crypto++的指令在构建和安装库的wiki上。

..。为了测试设置,我尝试编译test.cpp ..。

如果您想构建测试套件,那么就运行make cryptest.exe

如果您想在构建测试套件之后运行它,那么您可以运行./cryptest.exe v

undefined reference to RegisterFactories()

测试套件中使用的源文件有9个。它们是:

  • 验证.h,基准
  • test.cpp,datatest.cpp
  • bench.cpp,基准2.cpp
  • Valdat1.cpp,valdat2.cpp,valdat3.cpp

..。我该怎么做才能让整个图书馆开始工作呢?

make cryptest.exe./cryptest.exe v通常运行良好:)

我通常运行make static dynamic cryptest.exe来构建静态存档和共享对象。

您还可以使用tv命令运行单独的测试。例如,./cryptest.exe tv sha1将运行与SHA-1相关的测试。tv是“测试向量”,它们位于源的“`TestVectors”目录中。

相关的,如果您希望测试套件在安装后运行,那么您将需要DataDir贴片

这是社区提供的补丁。它不是Crypto++库的一部分(尽管它可能应该是库的一部分)。

票数 3
EN

Stack Overflow用户

发布于 2015-05-23 12:09:12

test.cpp并不是独立的.它使用了很多其他文件。实际上,它已经在构建中使用了(参见GNUmakefile)。构建完成后,生成libcryptopp.a和cryptest.exe。test.cpp用于构建cryptest.exe。

您提到的特定函数是在regtest.cpp中定义的。它还在其他C++文件中使用了许多其他函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30412236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档