我在我的应用程序中使用 QtMultimedia 模块。但是,在 Windows 中传递的以下代码在 ubuntu 上失败。
#include <QtMultimedia/QAbstractVideoSurface>
#include <QtMultimedia/QVideoFrame>
根据this question,必须安装QtMultimediaKit。但是,标头的位置不同,通过的代码如下所示:
#include <QtMultimediaKit/QAbstractVideoSurface>
#include <QtMultimediaKit/QVideoFrame>
诚然,这是一个很小的区别,但它阻止了我在 Windows 和 ubuntu 中互换编译。我的猜测是,我应该使用某种形式的宏表达式,如下所示:
#ifdef WIN_MACRO
#include <QtMultimedia/QAbstractVideoSurface>
#include <QtMultimedia/QVideoFrame>
#else
#include <QtMultimediaKit/QAbstractVideoSurface>
#include <QtMultimediaKit/QVideoFrame>
#endif
使代码在两个系统上都编译。如果这是正确的,宏应该是什么?如果不是 - 如何解决问题?