Здравствуйте! У меня есть вопрос. *.DLL и *.so это одно и тоже??? Дайте плз. пример как создать свою разделяемую библиотеку в линукс. И проясните как сделать так: у меня есть/будет некий проект на QT. Мне надо чтобы он использовал разделяемые библиотеки в Linux и DLL в Виндовс. Можно ли так сделать чтобы один и тот же исходный код компилировал ДЛЛ'ки в виндовс, и SO'шники в линукс?
Заранее Спасибо.
Ламерский вопрос - *.DLL и *.so это впринципе одно и тоже?
Модератор: Модераторы разделов
-
anterior
- Сообщения: 266
- ОС: Debian amd64
-
Alxn1
- Сообщения: 402
- Статус: Красноглазик со стажем
- ОС: Mavericks
Re: Ламерский вопрос - *.DLL и *.so это впринципе одно и тоже?
Не то, что бы я злой, но... Читайте манул по QT (и по qmake, в частности) - там всё написано.
-
anterior
- Сообщения: 266
- ОС: Debian amd64
Re: Ламерский вопрос - *.DLL и *.so это впринципе одно и тоже?
Есть проблема! Пусть существует некий проект библиотеки. Я создал некий файльчик mylibs_global.h:
Этот файльчик прикручен к моему проекту. В исходниках я уже объявил функции initialize(void) и finalize(void), там выполняется некий код. Дело в том что в Линухе эти функции выполняются по своему прямому назначению - т.е. Выполняются после загрузки и перед выгрузкой библиотеки, в винде они просто игнорируються. В чем проблема?
Код: Выделить всё
#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), там выполняется некий код. Дело в том что в Линухе эти функции выполняются по своему прямому назначению - т.е. Выполняются после загрузки и перед выгрузкой библиотеки, в винде они просто игнорируються. В чем проблема?