9

我尝试使用 apt-get: 安装 Crypto++ sudo apt-get install libcrypto++-dev libcrypto++-doc libcrypto++-utils。然后我尝试编译非常简单的程序,例如:

#include <iostream>
#include "aes.h"
#include "modes.h"

using namespace std;
using namespace CryptoPP;

int main()
{
    cout << "Yo, man!" << endl;
    return 0;
}

结果是fatal error: aes.h: No such file or directory

我是一个新的 Ubuntu 用户(以前是 Windows),所以我做了一些研究,但大多数人说输入一个命令就足以使用 Crypto++ 库获取存储库并使其工作。好吧,这不是我的情况。

4

2 回答 2

10

如果您按照您所说(使用apt-get)安装了库,请尝试以下操作:

#include <crypto++/aes.h>
#include <crypto/modes.h>

而不是这个:

#include "aes.h"
#include "modes.h"

您应该使用#include <crypto++/...>Ubuntu 将它们安装在它的“系统”中,这意味着预处理器在处理它们时会以特定顺序查看特定位置。另请参阅#include 和#include“文件名”有什么区别?.

另请注意,在 Fedora 和 Red Hat 上,您将使用#include <cryptopp/...>,而不是#include <crypto++/...>. 如果您针对 Crypto++ 的多个操作系统,请参阅如何使用自动工具更改包含文件路径?.

于 2013-10-18T15:28:40.660 回答
0

确保还包括-lcryptopp编译命令的标志!

于 2021-12-24T18:05:00.153 回答