- Kdevelop + OpenSSL хедеры, NuINu, 13:58 , 06-Июл-07 (1)
>Установил Kdevelop и все необходимые компоненты к нему а также послуднюю версию >OpenSSL (по дефолту устанавливается в /usr/local/ssl/include/openssl). Создал с проэкс с темплейтом >для хелло ворд - все компилируется. Заменяю исходный код кодом dtls >клиента взятого из http://freshmeat.net/projects/dtls_example/ в котором прописаны инклюды на опен ссл >библиотеку вот так > >#include <stdio.h> > >#include <openssl/ssl.h> >#include <openssl/bio.h> >#include <openssl/err.h> > >Пример не компилируется и выдает множество ошибок типа >/home/sergey/Ktest/src/ktest.c:182: undefined reference to `SSL_library_init' > >Изменил пути на абсолютные >#include </usr> >все равно приложение хедеры не видит. > ну если хочешь так ;)попробуй заменить угловые скобки на кавычки.а вообще тебе надо изменить/добавить переменную для компилятора -I в конфигурации проекта для qt это переменная INCLUDE в файле проекта. а в Кдевелоп, есть меню: проект-параметры проекта, там ищи параметры конфигуре, ну и там думаю надо в едите CPPFLAGS и поставить заветную строку -I/usr/local/ssl/include/openssl/ и в сишнике #include <ssl.h> или -I/usr/local/ssl/include/ и в сишнике #include <openssl/ssl.h> >Вопрос - что я делаю не правильно? Есть специфика указания заголовочных файлов >под линукс ? Заранее спасибо.
- Kdevelop + OpenSSL хедеры, vic, 14:05 , 06-Июл-07 (2)
>Установил Kdevelop и все необходимые компоненты к нему а также послуднюю версию >OpenSSL (по дефолту устанавливается в /usr/local/ssl/include/openssl). Создал с проэкс с темплейтом >для хелло ворд - все компилируется. Заменяю исходный код кодом dtls >клиента взятого из http://freshmeat.net/projects/dtls_example/ в котором прописаны инклюды на опен ссл >библиотеку вот так > >#include <stdio.h> > >#include <openssl/ssl.h> >#include <openssl/bio.h> >#include <openssl/err.h> > >Пример не компилируется и выдает множество ошибок типа >/home/sergey/Ktest/src/ktest.c:182: undefined reference to `SSL_library_init' это не компилятор, это уже линкер, нуна подключать саму библу, не наю как и где в kdevelop это прописывается, а для make используются результаты детекта утилиты pkg-config:флаги компиляции $ pkg-config --cflags openssl опции компановки $ pkg-config --libs openssl >Изменил пути на абсолютные >#include </usr/local/ssl/include/openssl/ssl.h> >все равно приложение хедеры не видит. если бы не видело хедеров писало бы 'не найден файл ssl.h' не надо менять так пути, после правильного (см. выше) подключения openssl в проект усе заработает.
>Вопрос - что я делаю не правильно? Есть специфика указания заголовочных файлов >под линукс ? Заранее спасибо. Все как обычно, по стандартам. Разделяйте понятие компиляция, линковка(компоновка), т.к. за это отвечают разные программы. Удачи.
- Kdevelop + OpenSSL хедеры, NuINu, 14:20 , 06-Июл-07 (3)
>>все равно приложение хедеры не видит. >если бы не видело хедеров писало бы 'не найден файл ssl.h' если компилятор видит хеадер, а путь к ним не стандартный, значит он видит, какой нибудь старый хеадер! находящийся по стандартному пути. Проверь к примеру путь /use/include и наверняка найдешь там директорию openssl
- Kdevelop + OpenSSL хедеры, vic, 14:40 , 06-Июл-07 (4)
> >>>все равно приложение хедеры не видит. >>если бы не видело хедеров писало бы 'не найден файл ssl.h' > >если компилятор видит хеадер, а путь к ним не стандартный, значит он >видит, какой нибудь старый хеадер! находящийся по стандартному пути. Проверь к >примеру путь /use/include >и наверняка найдешь там директорию openssl Хорошая мысль, хотя я вот у себя не нашел. Но так тоже бывает - конфликт хедеров, поэтому и следует использовать pkg-config для получения правильных путей и опций. И ставить их в правильном порядке при сборке проекта. - Kdevelop + OpenSSL хедеры, geragray, 17:38 , 06-Июл-07 (5)
Ура, все заработало. Итак все предположения оказались верными, действительно в прожект опшенс/конфигур нужно добавить две строчки для препроцессора -I/usr/local/ssl/include и для линковшика -lssl -lcrypto. Все спасибо за советы.> Проверь к примеру путь /use/include и наверняка найдешь там директорию openssl У меня там тоже было пусто
|