编译Ubuntu提供的Crypto ++

时间:2013-10-04 18:11:14

标签: ubuntu compilation crypto++

我尝试使用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 ++库的存储库并使其工作。嗯,这不是我的情况。

1 个答案:

答案 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?