Необходимо написать динамическую библиотеку, которая будет подключаться к программам динамически (с помощью библиотеки dl ).
Пишу исходник my.cc, в нем функция которая называется my_func. Делаю объектный модуль с флагом -fPIC, потом собственно собираю библиотеку my.so.0 с ключем -shared. Пытаюсь использовать... Подключается нормально, а вот при попытке взять указатель на функцию my_func возникает ошибка! Зато получается взять указатель на функцию что-то типа _Z8my_funcv !!!
Если этуже библиотеку использую а этапе компиляции (включаю нужный заголовок в проект и собираю с опцией -lmy, то все нормально и my_func это my_func)
Внимание вопрос! Почему меняется имя функции и как это исправить? Кто-нибудь в курсе как с этим бороться?
Хренбы с ним что оно другое, но вот если собрать библиотеку в другом дистрибутиве (другое ядро, библиотеки и гцц) то и название опять меняется!
Решено: функции в динамических библиотеках (как называются и к5ак этим рулить?)
Модератор: Модераторы разделов
-
grub
- Сообщения: 128
- ОС: Slackware 12.0
-
noob
- Сообщения: 212
Re: Решено: функции в динамических библиотеках
может быть
extern "C" my_func
extern "C" my_func
-
Zeus
- Сообщения: 694
Re: Решено: функции в динамических библиотеках
Как исправить - тебе уже написали.
А почему: потому что компилятор для своих нужд может изменять название функций в объектном коде.
У c++ это связано с перегрузками, а зачем это в чистом С - не знаю.
-
grub
- Сообщения: 128
- ОС: Slackware 12.0
-
grub
- Сообщения: 128
- ОС: Slackware 12.0
Re: Решено: функции в динамических библиотеках
Щас попробовал помогло
Спасиба!!!
Смутно помню, что раньше в длл под виндами так писал, но для чего это не знал! Еще раз спасибо!
Смутно помню, что раньше в длл под виндами так писал, но для чего это не знал! Еще раз спасибо!
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: Решено: функции в динамических библиотеках
-
Zeus
- Сообщения: 694
-
grub
- Сообщения: 128
- ОС: Slackware 12.0
Re: Решено: функции в динамических библиотеках
v04bvs писал(а): ↑30.08.2007 08:49
В чистом C этого не бывает. За что мы все его и любим.
да, таже простенькая библиотека но с расширением c нормально подключается без всяких extern`ов )
-
Zeus
- Сообщения: 694
Re: Решено: функции в динамических библиотеках
Хм... а с файлами *.cc gcc работает как с плюсовыми, что-ли?
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux