Компиляция против Crypto++, предоставленного Ubuntu

Я попытался установить Crypto++ с помощью apt-get: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++ и заставить его работать. Ну, это не в моем случае.

1 ответов


если вы установили библиотеку, как вы сказали (с помощью apt-get), то попробуйте этот:

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

вместо этого:

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

вы должны использовать #include <crypto++/...> потому что Ubuntu устанавливает их в свою "систему", что означает, что препроцессор будет искать в определенных местах в определенном порядке при их обработке. Также смотрите в чем разница между #include и #include "filename"?.

также обратите внимание, что на Fedora и Red Hat вы будете использовать #include <cryptopp/...>, а не #include <crypto++/...>. Если вы используете несколько операционных систем для Crypto++, то смотри как изменить путь к файлу include с помощью autotools?.