Q_DECL_EXPORT int main(int argc, char **argv)
这Q_DECL_EXPORT
之前是什么int main(...)
意思?
Q_DECL_EXPORT int main(int argc, char **argv)
这Q_DECL_EXPORT
之前是什么int main(...)
意思?
摘自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()
函数一起使用,因此可能可以将其删除。