c++ - 创建自定义 QT 库

标签 c++ visual-studio qt qt4

我使用 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/

相关文章:

C++ 独立可执行文件

qt - 获取 QGraphicsItem 内的 QWidget 的位置

c++ - Windows 7 和 C++ : Cross compiling application for use on Raspberry Pi

c# - 在面板之间切换

qt - Qt找不到dll,尽管一切都已设置

c++ - 编译 rsa 库时出现 LNK 错误

c++ - 控制像素着色器的键盘输入

c++ - 使用适用于 C++ 的 Google API 客户端库的 HTTP 请求

c++ - A类的变量在B类中,B类的指针在A类中?

visual-studio - 源代码管理中的 .sbr 文件