Russian Qt Forum

Qt => Вопросы новичков => Тема начата: alluk от Апрель 24, 2017, 13:53



Название: Подключение библиотеки otr
Отправлено: alluk от Апрель 24, 2017, 13:53
Установил библиотеку в linux.  подключил её в проект qt. LIBS+=-lotr/
Объявил заголовочные файлы .h. В коде структуры, константы видны,
а функции не вызываются  "undefined reference".  Что может быть не так?


Название: Re: Подключение библиотеки otr
Отправлено: Hornet от Апрель 24, 2017, 14:17
В какой линукс Ubuntu ? debian ????? OpenSUSE они разные начнем с этого.


Название: Re: Подключение библиотеки otr
Отправлено: alluk от Апрель 24, 2017, 14:29
Debian Linux, устанавливал пакет  libotr-4.1.1.


Название: Re: Подключение библиотеки otr
Отправлено: Hornet от Апрель 24, 2017, 15:07
Linux:
INCLUDEPATH += ../LIB/MANAGER/
LIBS += -L../LIB/MANAGER/ -lMANAGER
Попробуй так.


Название: Re: Подключение библиотеки otr
Отправлено: alluk от Апрель 24, 2017, 15:16
Файл .so лежит /usr/lib
Мне путь /usr/lib тогда указывать в обоих случаях?


Название: Re: Подключение библиотеки otr
Отправлено: Hornet от Апрель 24, 2017, 15:20
попробуй да в обеих


Название: Re: Подключение библиотеки otr
Отправлено: alluk от Апрель 24, 2017, 15:36
Указал, в итоге не помогло.


Название: Re: Подключение библиотеки otr
Отправлено: alluk от Апрель 24, 2017, 15:40
 У меня подозрение, что в С++ коде нельзя включить функцию, откомпилированую С компилятором. Хотя библиотеки должны же работать?


Название: Re: Подключение библиотеки otr
Отправлено: alluk от Апрель 24, 2017, 15:56
Пересобрал библиотеку из исходников, установил в /usr/local/. Результат тотже((.


Название: Re: Подключение библиотеки otr
Отправлено: qate от Апрель 24, 2017, 19:26
Объявил заголовочные файлы .h.

что значит "объявил", они же в библиотеке должны быть
может нужно libotr-dev поставить ?

ну и выхлоп линкера давай


Название: Re: Подключение библиотеки otr
Отправлено: alluk от Апрель 25, 2017, 08:22
Подключил .h файлы: #include <libotr/message.h>

Запускается g++ -Wl, -rpath, /opt/Qt5.8.0/5.8/gcc_64/lib -o /.../
-L/usr/local/lib -lotr -L/opt/Qt5.8.0/5.8/gcc_64/lib -lQt5Network -lQt5Xml -lQt5Core -lpthread
In function 'otr_send_msg' undifened reference to 'otrl_message_sending(/.../)'
 


Название: Re: Подключение библиотеки otr
Отправлено: qate от Апрель 25, 2017, 10:06
делай инклуд так:

Код:
extern "C" {
#include "libotr/proto.h"
#include "libotr/privkey.h"
#include "libotr/message.h"
#include "libotr/context.h"
}

упомянутая функция вызывает уныние при виде параметров

Код:
gcry_error_t otrl_message_sending(OtrlUserState us,
        const OtrlMessageAppOps *ops,
        void *opdata, const char *accountname, const char *protocol,
        const char *recipient, otrl_instag_t instag, const char *original_msg,
        OtrlTLV *tlvs, char **messagep, OtrlFragmentPolicy fragPolicy,
        ConnContext **contextp,
        void (*add_appdata)(void *data, ConnContext *context),
        void *data);

чем интересна эта либа ?


Название: Re: Подключение библиотеки otr
Отправлено: alluk от Апрель 25, 2017, 10:39
Собралось)). Делаю ОТР для клиента  джабера.