我使用VS2005创建了一个静态Qt库。
它创建了一个额外的文件“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
为什么要生成此文件,我想如何使用它?
感谢。
答案 0 :(得分:3)
您将类(或方法)标记为在库标题中导出:
class TEST_EXPORT TestClass {
// ...
};
然后在你的库专业文件中添加:
DEFINES += TEST_LIB
因此在dll编译期间,您的类头将具有“Q_DECL_EXPORT”宏,这是告诉链接器“导出此类/方法”的Qt方式,并且当您在某些应用程序中使用dll时,标头将具有“Q_DECL_IMPORT”宏。
有关详细信息,请查看Qt documentation。