使用 CMake 包含 QtMultimedia(或 QSound 所需的任何内容)模块

Mar*_*ann 5 qt cmake

我的问题可能归结为“模块叫什么”。

我想在 Qt 5.4 中使用QSound类,显然在调用时“Qt5Multimedia”模块没有与 QtGui 和 QtCore 一起拉入

find_package(Qt5Widgets REQUIRED)
Run Code Online (Sandbox Code Playgroud)

所以我浏览了我的 Qt 5.4 安装(在 Debian 本地),实际上找到了一个目录

~/sw/Qt/Qt_5_4/5.4/gcc_64/lib/cmake/Qt5Multimedia
Run Code Online (Sandbox Code Playgroud)

然而,天真地添加

find_package(Qt5Multimedia REQUIRED)
Run Code Online (Sandbox Code Playgroud)

我的CMakeLists.txt“找不到文件错误”的释义而失败

By not providing "FindQt5Multimedia.cmake" in CMAKE_MODULE_PATH this
project has asked CMake to find a package configuration file provided by
"Qt5Multimedia", but CMake did not find one.
Run Code Online (Sandbox Code Playgroud)

因此,在所述目录中,我询问ls -1并且实际上得到的比我想要的更多:

Qt5Multimedia_CameraBinServicePlugin.cmake
Qt5MultimediaConfig.cmake
Qt5MultimediaConfigVersion.cmake
Qt5Multimedia_QAlsaPlugin.cmake
Qt5Multimedia_QGstreamerAudioDecoderServicePlugin.cmake
Qt5Multimedia_QGstreamerCaptureServicePlugin.cmake
Qt5Multimedia_QGstreamerPlayerServicePlugin.cmake
Qt5Multimedia_QM3uPlaylistPlugin.cmake
Qt5Multimedia_QPulseAudioPlugin.cmake
Run Code Online (Sandbox Code Playgroud)

你们中的任何人都可以告诉我,为了能够使用 QSound 类来播放一些 .wav 文件,应该采取哪些措施?

m.s*_*.s. 6

将我的评论转换为这个答案以结束这个问题:

CMake 需要知道 Qt5 特定文件所在的位置。因此,您应该添加~/sw/Qt/Qt_5_4/5.4/gcc_64/到环境变量$CMAKE_PREFIX_PATH或使用

set(CMAKE_PREFIX_PATH "~/sw/Qt/Qt_5_4/5.4/gcc_64/") 
Run Code Online (Sandbox Code Playgroud)

然后CMake就可以执行了find_package(Qt5Multimedia)