Название: Как сделать dll в QT? Отправлено: Aleksan от Май 10, 2005, 08:30 Как сгенерировать проект который создает dll в QT?
Название: Как сделать dll в QT? Отправлено: Admin от Май 10, 2005, 09:14 почитать про qmake там где
Цитировать Templates The template variable tells qmake what sort of makefile should be generated for the application. The following choices are available: app - Creates a makefile that builds an application. This is the default, so if a template is not specified, this is used. lib - Creates a makefile that builds a library. vcapp - Creates a Visual Studio Project file which builds an application опция lib - может быть статической или динамической Название: Как сделать dll в QT? Отправлено: Sergeich от Май 11, 2005, 14:19 Под виндой кроме записей в прошке типа
TEMPLATE = lib CONFIG += dll надо экспортировать нужные функции и классы с помощью __declspec(dllexport), для этого лучше написать что-то вроде #ifdef Q_WS_WIN #define MY_EXPORT __declspec(dllexport) #else #define MY_EXPORT #endif class MY_EXPORT MyClass { ... }; тогда все это хозяйство будет работать и под виндой и под никсами Название: Как сделать dll в QT? Отправлено: Gregory от Май 11, 2005, 19:01 Цитировать тогда все это хозяйство будет работать и под виндой и под никсами Если ты накогда не писали динамические библиотеки под Qt - то зачем всякую ерунду советовать :x Для экспорта в Qt используется макрос Q_EXPORT Название: Как сделать dll в QT? Отправлено: Sergeich от Май 12, 2005, 09:39 Цитата: "Gregory" Если ты накогда не писали динамические библиотеки под Qt - то зачем всякую ерунду советовать :x Для экспорта в Qt используется макрос Q_EXPORT Я написал под Qt не один десяток dll. А эту "ерунду" ты можешь обнаружить в Qt Reference Documentation, QLibrary::resolve ( const char * symb ). Макрос Q_EXPORT нужен чтобы собрать саму Qt-шную библиотеку, после ее сборки он определен как __declspec(dllimport), если юзать его компилятор материться, но как-то работает( хотя вообще-то не должен ) и нет никаких гарантий, что это будет работать под другими( не MSVC ) компиляторами. |