2013-07-08 4 views
0

Я взял отличный совет от this answer, проверил the file list for libbotan1.10-dev и нашел /usr/lib/libbotan-1.10.a, поэтому я использовал флаг компоновщика -lbotan-1.10.Неустранимая ошибка: botan/botan.h: Нет такого файла или каталога

Я успешно смог скомпилировать и скомпилировать websocket ++, json-spirit, connector/C++ и boost::lockfree::spsc_queue.

Теперь я пытаюсь использовать passhash9 ботана для хэш-паролей.

Когда я пытаюсь скомпилировать с

g++ -Ofast -march=native -o btServer broadcast_server_tls.cpp 
-I ~/websocketpp-master/ -std=c++0x -D_WEBSOCKETPP_CPP11_STL_ 
-D_WEBSOCKETPP_NO_CPP11_REGEX_ -lboost_regex -lboost_system 
-pthread -L/usr/lib -lssl -lcrypto -ljson_spirit -lmysqlcppconn -lbotan-1.10 

г ++ дает ошибку на #include <botan/botan.h> линии, говоря "broadcast_server_tls.cpp:12:25: fatal error: botan/botan.h: No such file or directory".

Чтобы установить на Ubuntu 12.10, я сделал apt-get install libbotan1.10-dev.

Как это исправить?

+0

как говорит ошибка, компилятор не может найти 'Ботан/botan.h'. Чтобы включить файл, вы должны иметь флаг -I. В каком каталоге находится ваш botan.h? –

ответ

1

Вы должны собрать как:

g++ "whatever_source_file" "whatever flags you are already using" -I/usr/include/botan-1.10/

+0

странно. мне интересно, почему флаг можно использовать с другими библиотеками в стиле из связанного ответа, но не с ботаном ... –

+0

@ Gracchus, где он используется с другой библиотекой? Ошибка в значительной степени понятна и - я использую эту опцию. Обычно компоновщик выдавал ошибки, такие как 'undefined reference', что означает, что он уже нашел файл (содержащий определения функций), но когда пытался найти код для какой-то определенной функции, его не удалось найти. Я думаю, если путь, в котором присутствует '.a'' botan', не находится в поиске по умолчанию 'linker', тогда вы получите неопределенную ошибку ссылки, если вы удалите флаг -l' для библиотеки. –

+0

@ Gracchus попробуйте добавить '-L/path_to_dir', где' path_to_dir' - это путь к каталогу, в котором присутствует ваш соответствующий '.a'. –

Смежные вопросы