powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Загрузка динамической библиотеки в С++ под Linux
11 сообщений из 11, страница 1 из 1
Загрузка динамической библиотеки в С++ под Linux
    #33275792
Ekshibarov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уменя вот какая проблема. Есть библиотека libopenobex. И мне ее нужно подгрузить. Имеется вот такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#include <openobex/obex.h>
#include <stdio.h>

int main(){

         OBEX_GetUserData(NULL); // Функция из этой библиотеки

         return  0 ;

 }
Так вот если я делаю компиляцию C компилятором, то все нормально:

gcc -c -omain.o main.c
g++ -g -O2 -o main main.o -lopenobex

Если же я делаю компиляцию C++, то выскавиает ошибка на этапе сборки:

g++ -c -omain.o main.c
g++ -g -O2 -o main main.o -lopenobex

Ошибка:
main.o(.text+0x16): In function `main':
: undefined reference to `OBEX_GetUserData(void**)'
collect2: ld returned 1 exit status

С чем это может быть связано? Может нужно какой нить флажок поставить? Это простой пример, просто я не могу использовать С компилятор на всем проекте, так как он большой, и реализован с использованием C++. Помогите кто может.
...
Рейтинг: 0 / 0
Загрузка динамической библиотеки в С++ под Linux
    #33275929
Alex_VC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А саму библиотеку (*.lib) подключил?:
Код: plaintext
#pragma comment(lib,"mylib.lib");
...
Рейтинг: 0 / 0
Загрузка динамической библиотеки в С++ под Linux
    #33275957
Ekshibarov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_VCА саму библиотеку (*.lib) подключил?:
Код: plaintext
#pragma comment(lib,"mylib.lib");

Ну вообще библиотека libopenobex.so подключается в строке сборки:
g++ -g -O2 -o main main.o -lopenobex
а именно -lopenobex, и он ее находит иначе бы ругался по другому.
...
Рейтинг: 0 / 0
Загрузка динамической библиотеки в С++ под Linux
    #33277012
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может у тебя в .h файле косяк какой-нибудь? Может там забыли эту функция как extern "C" описать, и манглинг в C++ коверкает имя функции при линковке?
...
Рейтинг: 0 / 0
Загрузка динамической библиотеки в С++ под Linux
    #33277306
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ээээ, Господа

А давно под Linux-ом появились ДИНАМИЧЕСКИЕ библиотеки ???
...
Рейтинг: 0 / 0
Загрузка динамической библиотеки в С++ под Linux
    #33277349
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а разве lib не статически линкуемая библа ?


 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
Загрузка динамической библиотеки в С++ под Linux
    #33277364
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Ээээ, Господа

А давно под Linux-ом появились ДИНАМИЧЕСКИЕ библиотеки ???

Ясно ведь из контекста что .so, Зачем к словам придираться?
...
Рейтинг: 0 / 0
Загрузка динамической библиотеки в С++ под Linux
    #33277506
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажи компилятору чтобы он делал имена в C стиле:
Код: plaintext
1.
2.
3.
extern "C" {
// здесь объявления всех функций и переменных которые должны быть доступны
// одновременно из С и С++ модулей.
}
Проверь заголовочный файл своей библиотеки. Если у него подобной конструкции нет, то добавь. Хотя С-библиотеки такую уже всегда имеют :)
...
Рейтинг: 0 / 0
Загрузка динамической библиотеки в С++ под Linux
    #33277783
Ekshibarov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хрен, White Owl, спасибо. Дествительно помогло:
Код: plaintext
1.
2.
3.
extern "C"{
#include <openobex/obex.h>
}
...
Рейтинг: 0 / 0
Загрузка динамической библиотеки в С++ под Linux
    #33277811
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хрен Gluk (Kazan)Ээээ, Господа

А давно под Linux-ом появились ДИНАМИЧЕСКИЕ библиотеки ???

Ясно ведь из контекста что .so, Зачем к словам придираться?

Затем, что постановка вопроса в subj идиотская :P
SO это НЕ DLL
...
Рейтинг: 0 / 0
Загрузка динамической библиотеки в С++ под Linux
    #33277813
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отсюда же лезут того же уровня советы относительно #pragma
Каков вопрос, таков ответ
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Загрузка динамической библиотеки в С++ под Linux
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]