【发布时间】:2026-02-04 05:30:01
【问题描述】:
我的问题可能归结为“模块叫什么”。
我想在 Qt 5.4 中使用 QSound 类,显然 “Qt5Multimedia”模块没有与 QtGui 一起被拉入,并且 QtCore 调用时
find_package(Qt5Widgets REQUIRED)
所以我浏览了我的 Qt 5.4 安装(在 Debian 上本地),实际上找到了一个目录
~/sw/Qt/Qt_5_4/5.4/gcc_64/lib/cmake/Qt5Multimedia
然而,天真地添加
find_package(Qt5Multimedia REQUIRED)
到我的 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.
所以,在上述目录中,我问 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
你们谁能告诉我,如果有的话,为了成为 可以使用 QSound 类播放一些 .wav 文件吗?
【问题讨论】:
-
您可能需要将
~/sw/Qt/Qt_5_4/5.4/gcc_64/添加到环境变量$CMAKE_PREFIX_PATH以让CMake 知道Qt5 特定文件的位置。 -
我没有考虑这一点,因为我的 CMakeLists.txt 中已经有这样的一行。但事实证明,它在 QtWidgets 上是个性化的。我现在将其更新为 set(CMAKE_PREFIX_PATH "/home/kochmn/sw/Qt/Qt_5_4/5.4/gcc_64/lib/cmake/Qt5Widgets;/home/kochmn/sw/Qt/Qt_5_4/5.4/gcc_64/lib/cmake/Qt5Multimedia " ) 这实际上似乎解决了这个问题。谢谢你的提示! :-)
-
第二次尝试,看到你提出了一个更短的路径,我只是使用了 set(CMAKE_PREFIX_PATH "/home/kochmn/sw/Qt/Qt_5_4/5.4/gcc_64/lib/cmake/") 似乎同时适用于两个模块。