我尝试使用apt-get:sudo apt-get install libcrypto++-dev libcrypto++-doc libcrypto++-utils
安装Crypto ++。然后我尝试编译非常简单的程序,如:
#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 ++库的存储库并使其工作。嗯,这不是我的情况。
答案 0 :(得分:9)
如果您按照说明安装了库(使用apt-get
),请尝试以下操作:
#include <crypto++/aes.h>
#include <crypto/modes.h>
而不是:
#include "aes.h"
#include "modes.h"
您应该使用#include <crypto++/...>
,因为Ubuntu会在其“系统”中安装它们,这意味着预处理器在处理它们时会按特定顺序查看特定位置。另请参阅What is the difference between #include and #include “filename”?。
另请注意,在Fedora和Red Hat上,您将使用#include <cryptopp/...>
,而不是#include <crypto++/...>
。如果您要为Crypto ++定位多个操作系统,请参阅How to change the include file path with autotools?。