- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经从官方网站下载了 Crypto++ 7.0.0,用它构建了一个静态库,包括 cryptlib 头文件:
#include "cryptlib.h"
当我尝试编译我的程序时:
gcc main.cpp ./cryptopp700/libcryptopp.a
它向我抛出这样的错误:
main.cpp:2:10: fatal error: cryptlib.h: No such file or directory
#include "cryptlib.h"
^~~~~~~~~~~~
compilation terminated.
我也尝试过:
-L. -llibcryptopp //while moving libcryptopp.a to the same directory main.cpp is
-L./cryptopp700 -llibcryptopp
所以我开始怀疑我是否做错了什么,但当我检查带有静态库的代码示例时,一切似乎都很好。
请帮忙。
最佳答案
基于:
main.cpp:2:10: fatal error: cryptlib.h: No such file or directory
和:
gcc main.cpp ./cryptopp700/libcryptopp.a
你的目录结构如下:
+- Project Folder
|
+- main.cpp
|
+- cryptopp700
|
+- cryltib.h
+- ...
+- libcryptopp.a
您只需要使用 -I
将 cryptopp700/
添加到包含 header 搜索路径:
g++ main.cpp -I ./cryptopp700 ./cryptopp700/libcryptopp.a
请注意,您还应该使用 g++(C++ 编译器),而不是 gcc(C 编译器).
你也可以安装这个库,因为它已经构建好了。默认情况下,它安装到 /usr/local
中:
skylake:cryptopp$ sudo make install
[sudo] password for jwalton:
install -m 644 *.h /usr/local/include/cryptopp
install -m 644 libcryptopp.a /usr/local/lib
install cryptest.exe /usr/local/bin
install -m 644 TestData/*.dat /usr/local/share/cryptopp/TestData
install -m 644 TestVectors/*.txt /usr/local/share/cryptopp/TestVectors
您可以使用 PREFIX
安装到备用位置:
skylake:cryptopp$ sudo make install PREFIX=/opt/local
install -m 644 *.h /opt/local/include/cryptopp
install -m 644 libcryptopp.a /opt/local/lib
install cryptest.exe /opt/local/bin
install -m 644 TestData/*.dat /opt/local/share/cryptopp/TestData
install -m 644 TestVectors/*.txt /opt/local/share/cryptopp/TestVectors
然后,您可以将编译和链接命令更改为如下内容:
g++ main.cpp -I /usr/local/include/cryptopp -o main.exe /usr/local/lib/libcryptopp.a
安装如下所示后,我通常会告诉人们运行自检。不幸的是,如果您所做的只是 make -j 4
或类似的操作,这将不起作用。
$ make -j 4
...
$ sudo make install
[sudo] password for jwalton:
install -m 644 *.h /usr/local/include/cryptopp
install -m 644 libcryptopp.a /usr/local/lib
install cryptest.exe /usr/local/bin
install -m 644 TestData/*.dat /usr/local/share/cryptopp/TestData
install -m 644 TestVectors/*.txt /usr/local/share/cryptopp/TestVectors
这是你会得到的错误:
skylake:cryptopp$ cd /opt/local/bin/
skylake:bin$ ./cryptest.exe v
Using seed: 1544189072
Testing Settings...
passed: Your machine is little endian.
passed: Aligned data access.
passed: sizeof(byte) == 1
passed: sizeof(word16) == 2
passed: sizeof(word32) == 4
passed: sizeof(word64) == 8
passed: sizeof(word128) == 16
passed: sizeof(hword) == 4, sizeof(word) == 8, sizeof(dword) == 16
passed: cacheLineSize == 64
hasSSE2 == 1, hasSSSE3 == 1, hasSSE4.1 == 1, hasSSE4.2 == 1, hasAVX == 1, hasAVX2 == 1, hasAESNI == 1, hasCLMUL == 1, hasRDRAND == 1, hasRDSEED == 1, hasSHA == 0, isP4 == 0
...
SHA validation suite running...
Exception caught: Can not open file TestVectors/sha.txt for reading
我的想法是,事情应该对您“有效”。对于常见情况,您无需担心 CRYPTOPP_DATA_DIR
。而且您当然不必使用 RTFM 来使常见情况起作用。这告诉我我们的工程流程存在缺陷。
我们现在要解决这个问题:第 760 期,Make self-tests run after install by a typical user .
关于c++ - 无法编译,错误 : cryptlib. h:没有那个文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53669777/
你好。 首先:我是 stackOverflow 和我正在谈论的主题的新手...... 我试图避免使用 cryptlib我的 Java 应用程序中用于 TripleDES 加密的库(现在我使用 AES
我正在尝试转换Crypt Lib in js的逻辑,我有现有的android应用程序,并且该API位于c Sharp中,我想转换加密和解密逻辑。 我尝试了多种版本,您可以检查代码:Tried code
我正在使用 Cross-Platform-AES用于我的 swift 应用程序中的 AES 加密/解密。我的加密工作正常。但是当我尝试解密服务返回值时,它没有给我正确的结果。这是我解密的方式。 pub
我实际上是在编程和端到端加密日历。为此,我使用 cryptlib .我或多或少复制了 manual 中的代码.但总是,当我尝试生成根 ca 时。它在 cryptSignCert() 处失败,错误代码为
我已经从官方网站下载了 Crypto++ 7.0.0,用它构建了一个静态库,包括 cryptlib 头文件: #include "cryptlib.h" 当我尝试编译我的程序时: gcc main.c
我的应用程序使用 AES 256 加密来加密字符串。之前使用的相同代码会生成不同的结果。这个问题在 iOS 13 发布时就开始出现。这种情况仅发生在发布到商店或使用 Xcode 11 构建的应用程序中
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
在Visual Studio上编译项目时,出现上述错误。我的情况有一个奇怪的地方,与众不同的是,它可以在我的个人笔记本电脑上工作,但不能工作。 我将整个项目保存在Dropbox中,因为有时我会在工作状
编辑:好的,我解决了我最初概述的无法找到 curl 和 cryptlib header 的问题。但是,在通过使用 macports 安装 curl 和 libcryptopp 解决了这些问题之后,我在
我是一名优秀的程序员,十分优秀!