C++ 创建自定义QT库
我使用VS2005创建了一个静态Qt库 除了预期的文件(test.h和test.cpp)之外,它还创建了一个额外的文件“test_global.h” test_global.hC++ 创建自定义QT库,c++,visual-studio,qt,qt4,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_
#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
\ifndef测试\u全局\u H
#定义测试\u全局\u H
#包括
#ifdef测试库
#定义测试导出Q_DECL_导出
#否则
#定义测试导出Q_DECL_导入
#恩迪夫
#endif//TEST\u GLOBAL\u H
为什么要生成这个文件,我想如何使用它
谢谢。在库标题中将类(或方法)标记为导出:
class TEST_EXPORT TestClass {
// ...
};
然后在library pro文件中添加:
DEFINES += TEST_LIB
因此,在dll编译期间,您的类头将有“Q_DECL_EXPORT”宏,这是告诉链接器“EXPORT this class/method”的Qt方式,当您在某些应用程序中使用dll时,头将有“Q_DECL_IMPORT”宏
有关详细信息,请查看。在库标题中将类(或方法)标记为导出:
class TEST_EXPORT TestClass {
// ...
};
然后在library pro文件中添加:
DEFINES += TEST_LIB
因此,在dll编译期间,您的类头将有“Q_DECL_EXPORT”宏,这是告诉链接器“EXPORT this class/method”的Qt方式,当您在某些应用程序中使用dll时,头将有“Q_DECL_IMPORT”宏
有关更多信息,请检查。1-)我是否需要在每个符号前面加上“TEST\u EXPORT”,或者范围是否存在?2-)我是否需要将“测试导出”放在客户端未使用的类前面?Ad.1。如果要导出类中的每个符号,请将TEST_export放在类名前面。如果您只想导出一些符号,不要将TEST_export放在类的前面,而是将TEST_export放在每个导出符号的前面。公元2年。否1-)我是否需要在每个符号前面加上“TEST_EXPORT”,或者范围是否存在?2-)我是否需要将“测试导出”放在客户端未使用的类前面?Ad.1。如果要导出类中的每个符号,请将TEST_export放在类名前面。如果您只想导出一些符号,不要将TEST_export放在类的前面,而是将TEST_export放在每个导出符号的前面。公元2年。不