Создание собственной библиотеки QT - PullRequest
0 голосов
/ 04 мая 2010

Я создал статическую библиотеку Qt с помощью VS2005.

Он создал дополнительный файл "test_global.h" помимо ожидаемых (test.h и test.cpp).

test_global.h

#ifndef TEST_GLOBAL_H
#define TEST_GLOBAL_H

#include <Qt/qglobal.h>

#ifdef TEST_LIB
# define TEST_EXPORT Q_DECL_EXPORT
#else
# define TEST_EXPORT Q_DECL_IMPORT
#endif

#endif // TEST_GLOBAL_H

Почему этот файл генерируется, как мне его использовать?

Спасибо.

1 Ответ

3 голосов
/ 04 мая 2010

Вы помечаете свой класс (или методы) как экспортированные в заголовках вашей библиотеки:

class TEST_EXPORT TestClass {
    // ...
};

Затем в свой библиотечный файл pro вы добавляете:

DEFINES += TEST_LIB

Таким образом, во время компиляции dll ваш заголовок класса будет иметь макрос "Q_DECL_EXPORT", который является способом Qt, чтобы сказать компоновщику "экспортировать этот класс / метод", и когда вы используете dll в каком-то приложении, заголовок будет иметь "Q_DECL_IMPORT" макросъемки.

Для получения дополнительной информации смотрите документацию Qt .

...