Сотрудничество между Eclipse и Crypto++

Я пытаюсь использовать библиотеку Crypto++ для шифрования/дешифрования AES. Установка прошла успешно, и я создал проект в Eclipse. В Project Explorer в категории «включает» я вижу /usr/include/crypt.h, /usr/include/crypt++/aes.h и /usr/include/cryptpp/aes.h.

Когда я набираю #include <aes.h>, Eclipse интерпретирует это как «неразрешенное включение». С одной стороны, это кажется нормальным, потому что aes.h не находится непосредственно в каталоге /usr/include. С другой стороны, в каждом учебнике, который я нашел, они кажутся #include aes.h; они не относятся ни к crypto++/aes.h, ни к cryptopp/aes.h.

У меня есть один год опыта работы с C и C++ с использованием gedit, но это моя первая попытка использовать Eclipse. Я установил плагин разработки C/C++, и настройки каталога include кажутся правильными. Есть ли что-то, что мне не хватает?


person someone    schedule 23.09.2013    source источник


Ответы (1)


Как вы сказали, это нормально, поскольку файл находится в папке внутри /usr/include, а не непосредственно в каталоге include, в любом случае это не имеет ничего общего с Eclipse или любой другой IDE, но это просто вопрос GCC и переменная среды "C_INCLUDE_PATH", если вы используете простой C, или "CPLUS_INCLUDE_PATH", если вы используете g++, если вы действительно не хотите использовать синтаксис #include cryptopp/aes.h, просто добавьте папку /usr/include/cryptopp к соответствующей переменной среды , может быть, с такой строкой в ​​вашем файле .bashrc

C_INCLUDE_PATH= $C_INCLUDE_PATH:/usr/include/cryptopp

в любом случае, я не вижу никакой проблемы в использовании #include cryptopp/aes.h

person woggioni    schedule 23.09.2013
comment
Прежде всего, спасибо за ответ. Что касается проблемы, то она заключается в том, что существуют и каталоги crypto++, и каталоги cryptopp. Поскольку в учебниках они include просто aes.h, я понятия не имею, какой из них использовать... - person someone; 24.09.2013
comment
Есть ли разница между ними? - person someone; 24.09.2013
comment
какая у тебя ОС? Я спрашиваю, потому что я только что использовал криптографическую библиотеку в Arch Linux и Ubuntu, и она поставляется с предустановленной последней версией OpenSSL в папке /usr/include/openssl. Вы можете проверить, существует ли она в вашей ОС. .. - person woggioni; 24.09.2013
comment
Я использую Ubuntu, в частности версию 13.04. Однако я не могу найти openssl в каталоге include... - person someone; 24.09.2013
comment
Вы правы, Ubuntu по умолчанию имеет только файлы .so, для установки заголовков и исходников openSSL вам нужно sudo apt-get install libssl-dev.. тогда появится папка /usr/include/openssl.. Я предлагаю вам использовать это one, так как это официальная поддерживаемая версия для вашего дистрибутива - person woggioni; 24.09.2013
comment
По сути, это рекомендованная учителем библиотека; таким образом я пойду с ним. Знаете ли вы, есть ли разница между двумя наборами заголовков? - person someone; 24.09.2013
comment
О, как угодно... Я перешел в каталог с помощью nautilus и обнаружил, что cryptopp на самом деле является ссылкой... Так что они одинаковы. Интересно, почему Eclipse показывает оба! Однако есть ли способ включить /usr/include/cryptopp только в Eclipse, не затрагивая остальную часть системы? - person someone; 24.09.2013
comment
Я никогда не использовал Eclipse, но я так не думаю, поскольку так или иначе, когда вы нажимаете кнопку «сборка» или «компилировать», Eclipse должен вызывать gcc или g++, который действительно оценивает ваши источники, поэтому если вы не измените C_INCLUDE_PATH, это невозможно, но вы сможете сделать это вручную в своем make-файле, добавив C_INCLUDE_PATH= $C_INCLUDE_PATH:/usr/include/cryptopp на этапе компиляции. - person woggioni; 24.09.2013
comment
Спасибо за ваше время. Постараюсь разобраться с остальным! :D - person someone; 24.09.2013