The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Kdevelop + OpenSSL хедеры, !*! geragray, 06-Июл-07, 13:42  [смотреть все]
Установил 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/local/ssl/include/openssl/ssl.h>
все равно приложение хедеры не видит.

Вопрос - что я делаю не правильно? Есть специфика указания заголовочных файлов под линукс ? Заранее спасибо.

  • 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
        У меня там тоже было пусто





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру