【问题标题】:Creating Custom QT Library创建自定义 QT 库
【发布时间】: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

为什么会生成这个文件,我想如何使用它?

谢谢。

【问题讨论】:

    标签: c++ visual-studio qt qt4


    【解决方案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。没有。
    猜你喜欢
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    相关资源
    最近更新 更多