Ламерский вопрос - *.DLL и *.so это впринципе одно и тоже?

Модератор: Модераторы разделов

Аватара пользователя
anterior
Сообщения: 266
ОС: Debian amd64

Ламерский вопрос - *.DLL и *.so это впринципе одно и тоже?

Сообщение anterior »

Здравствуйте! У меня есть вопрос. *.DLL и *.so это одно и тоже??? Дайте плз. пример как создать свою разделяемую библиотеку в линукс. И проясните как сделать так: у меня есть/будет некий проект на QT. Мне надо чтобы он использовал разделяемые библиотеки в Linux и DLL в Виндовс. Можно ли так сделать чтобы один и тот же исходный код компилировал ДЛЛ'ки в виндовс, и SO'шники в линукс?

Заранее Спасибо.
Спасибо сказали:
Аватара пользователя
Alxn1
Сообщения: 402
Статус: Красноглазик со стажем
ОС: Mavericks

Re: Ламерский вопрос - *.DLL и *.so это впринципе одно и тоже?

Сообщение Alxn1 »

Не то, что бы я злой, но... Читайте манул по QT (и по qmake, в частности) - там всё написано.
Спасибо сказали:
Аватара пользователя
anterior
Сообщения: 266
ОС: Debian amd64

Re: Ламерский вопрос - *.DLL и *.so это впринципе одно и тоже?

Сообщение anterior »

Есть проблема! Пусть существует некий проект библиотеки. Я создал некий файльчик mylibs_global.h:

Код: Выделить всё

#ifndef MYLIBS_GLOBAL_H
#define MYLIBS_GLOBAL_H
#ifdef Q_WS_WIN
# define EXPORT __declspec(dllexport)
#else
# define EXPORT
#endif
void __attribute__ ((constructor)) initialize(void);
void __attribute__ ((destructor)) finalize(void);
#endif

Этот файльчик прикручен к моему проекту. В исходниках я уже объявил функции initialize(void) и finalize(void), там выполняется некий код. Дело в том что в Линухе эти функции выполняются по своему прямому назначению - т.е. Выполняются после загрузки и перед выгрузкой библиотеки, в винде они просто игнорируються. В чем проблема?
Спасибо сказали: