在这个
int main(...)
之前的 Q_DECL_EXPORT
是什么意思?以下是从QT文档摘录的内容:
根据目标平台的不同,Qt提供了特殊的宏定义,包含必要的定义:
- 当编译共享库时使用的符号声明中必须添加Q_DECL_EXPORT。
- 当编译使用共享库的客户端时使用的符号声明中必须添加Q_DECL_IMPORT。
我还没有检查过QT代码,但很可能此宏将执行以下操作:
#ifdef _WIN32 || _WIN64
#define Q_DECL_EXPORT __declspec(dllexport)
#define Q_DECL_IMPORT __declspec(dllimport)
#else
#define Q_DECL_EXPORT
#define Q_DECL_IMPORT
#endif
__declspec(dllimport)
和 __declspec(dllexport)
告诉链接器从 DLL 导入或导出(分别)一个符号。 这仅适用于 Windows。
在您的特定情况下,这个宏可能可以被删除,因为 main()
很可能不是库的一部分。
这不是一个关键字,而是一个宏,用于封装不同编译器特定的关键字来声明函数为exported
。
另请参见Q_DECL_EXPORT
和创建共享库。
通常与库一起使用,定义需要从库中导出的函数,以便其他库或可执行文件可以导入(“使用”)它们。
我迄今为止还没有看到使用main
函数的情况,但这可能是黑莓特有的事情。另一方面,这个教程也没有在main()
函数中使用宏,因此它可能可以被删除。
Q_DECL_EXPORT main()
,因为本地Android应用程序是从引导Java代码加载的库。在Blackberry下可能也类似,我不确定。 - tanius