2012-12-17 37 views

回答

18
QT docs

摘录:

根据您的目标平台上,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()很可能不是库的一部分。

6

它不是一个关键字,它是一个宏来封装不同的编译器特定的关键字来声明一个函数为exported

另请参阅Q_DECL_EXPORTCreating Shared Libraries

它通常与库一起用于定义那些需要从库中导出的函数,以便被其他库或可执行文件导入(“使用”)。

到目前为止,我还没有看到这与main函数,但这可能是一个黑莓的具体事情。另一方面,这个tutorial也不使用宏,因为main()函数可能会被删除。

相关问题