我使用 VS2005 创建了一个静态 Qt 库。
除了预期的文件(test.h 和 test.cpp)之外,它还创建了一个额外的文件“test_global.h”。
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
为什么会生成这个文件,我应该如何使用它?
谢谢。
最佳答案
您在库 header 中将您的类(或方法)标记为已导出:
class TEST_EXPORT TestClass {
// ...
};
然后在您的库 pro 文件中添加:
DEFINES += TEST_LIB
因此在 dll 编译过程中,您的类 header 将具有“Q_DECL_EXPORT”宏,这是 Qt 告诉链接器“导出此类/方法”的方式,当您在某些应用程序中使用您的 dll 时, header 将具有“Q_DECL_IMPORT”宏。
有关更多信息,请查看 Qt documentation .
关于c++ - 创建自定义 QT 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2763259/