创建自定义 QT 库
Posted
技术标签:
【中文标题】创建自定义 QT 库【英文标题】:Creating Custom QT Library 【发布时间】:2010-05-04 06:29:20 【问题描述】:我使用 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
为什么会生成这个文件,我想如何使用它?
谢谢。
【问题讨论】:
【参考方案1】:您在库标头中将您的类(或方法)标记为导出:
class TEST_EXPORT TestClass
// ...
;
然后在你的库 pro 文件中添加:
DEFINES += TEST_LIB
因此,在 dll 编译期间,您的类头将具有“Q_DECL_EXPORT”宏,这是 Qt 告诉链接器“导出此类/方法”的方法,并且当您在某些应用程序中使用您的 dll 时,头将具有“Q_DECL_IMPORT”宏。
更多信息,请查看Qt documentation。
【讨论】:
1-)我需要在每个符号前面加上“TEST_EXPORT”,还是存在范围? 2-)我需要把“TEST_EXPORT”放在客户不使用的类前面吗? 广告 1。如果要导出类中的每个符号,请将 TEST_EXPORT 放在类名前面。如果您只想导出一些符号,请不要将 TEST_EXPORT 放在类的前面,而是将 TEST_EXPORT 放在每个导出的符号前面。广告 2。没有。以上是关于创建自定义 QT 库的主要内容,如果未能解决你的问题,请参考以下文章
使用 LeanBack 支持库自定义 Android TV 界面