Компиляция против 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?.