The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Библиотека для загрузки динамических модулей"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Библиотека для загрузки динамических модулей" 
Сообщение от Brick emailИскать по авторуВ закладки(??) on 24-Дек-05, 23:53  (MSK)
Доброе время суток!

Подскажите, пожалуйста, можно-ли использовать DL библиотеку (для создания динаически загружаемых модулей) с g++?

Сразу скажу, что у меня такая конструкция не работала...

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]

1. "Библиотека для загрузки динамических модулей" 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 24-Дек-05, 23:59  (MSK)
>Подскажите, пожалуйста, можно-ли использовать DL библиотеку (для создания
>динаически загружаемых модулей) с g++?
>
>Сразу скажу, что у меня такая конструкция не работала...

А что, собственно, помешало? При компиляции объектников для библиотеки
используется флаг '-fPIC', при линковке самой библиотеки - флаг '-shared',
а дальше dlopen() + dlsym().

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Библиотека для загрузки динамических модулей" 
Сообщение от Brick emailИскать по авторуВ закладки(??) on 25-Дек-05, 14:05  (MSK)
Я так всё и делаю. Вопрос немного не в том состоял. Всй работает, когда модуль написан на С и компилируется gcc, если писать на С++ и компилировать g++, dlopen() и dlsym()проходят без проблемм, а при вызове загруженной функции из модуля выдетает в корку.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Библиотека для загрузки динамических модулей" 
Сообщение от sandy emailИскать по авторуВ закладки(??) on 25-Дек-05, 14:46  (MSK)
>Я так всё и делаю. Вопрос немного не в том состоял. Всй
>работает, когда модуль написан на С и компилируется gcc, если писать
>на С++ и компилировать g++, dlopen() и dlsym()проходят без проблемм, а
>при вызове загруженной функции из модуля выдетает в корку.

Если пишете на С++ надо указать extern "C"

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Библиотека для загрузки динамических модулей" 
Сообщение от Brick emailИскать по авторуВ закладки(??) on 25-Дек-05, 18:15  (MSK)
Спасибо! Так всё заработало!
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Библиотека для загрузки динамических модулей" 
Сообщение от sandy emailИскать по авторуВ закладки(??) on 27-Дек-05, 11:59  (MSK)
>Спасибо! Так всё заработало!

Где-то читал, что С++ свойственно подменять имя функции. С - такого не делает. Потому extern "C" должен эту проблему решать

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Библиотека для загрузки динамических модулей" 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 27-Дек-05, 16:49  (MSK)
>Где-то читал, что С++ свойственно подменять имя функции. С - такого не
>делает. Потому extern "C" должен эту проблему решать

Мнда, оказывается C++-компилятор - мастер-фальшивоимённик.
Весьма интересная интерпретация name mangling...

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]




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

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