如何在运行时从QObject中检测它所链接的Qt是否是调试版本或发布版本?
我知道QT_NO_DEBUG宏,但是在Qt的构建时解决了这个问题.
示例1何时有用:我有一个插件充当崩溃处理程序,提供回溯.如果qt调试符号可用,我只希望这个插件尝试完成所有这些工作.
示例2:我有一个用pyqt编写的命令行参数解析器.它想要打印程序帮助.如何从pyqt中找出QApplication是否支持-sync开关.如果我有关于构建类型的信息,我可以从程序理解的参数列表中轻松添加或删除-sync.
sam*_*m-w 37
如果您只想测试是否正在运行应用程序的调试版本或发布版本,请使用QT_DEBUG:
#ifdef QT_DEBUG
qDebug() << "Running a debug build";
#else
qDebug() << "Running a release build";
#endif
Run Code Online (Sandbox Code Playgroud)
虽然这显然使用预处理器,而不是在运行时检查.我有点困惑为什么你已经指定你想要在运行时进行这项检查,因为只有在编译之前才能决定使用或不使用调试功能进行构建...
我不知道在Qt4中有什么简单的方法来检查你链接的Qt库是否已经启用了调试(尽管我注意到这在Qt5中随着添加而改变QLibraryInfo::isDebugBuild()).
| 归档时间: |
|
| 查看次数: |
14420 次 |
| 最近记录: |