首页| 论坛| 消息

标题:Qt Multimedia 5.15和6.2不能一起用?
作者:fsu0413
日期:2021-10-06 07:06
内容:

在Qt5.15和Qt6.2都存在的环境下,使用CMake构建下面的CMakeLists.txt报错
已报QTBUG,被关了,说这个CMakeLists.txt有问题,使用了“Qt5和Qt5”在链接语句里,不过我并没看出来问题出在哪里,也没明白他说的“Qt5和Qt5”是什么意思
https://bugreports.qt.io/browse/QTBUG-97097

代码如下

cmake_minimum_required(VERSION 3.20)

if ( NOT ( ( CMAKE_GENERATOR MATCHES "Makefiles" ) OR ( CMAKE_GENERATOR MATCHES "Ninja" ) ) )
message(FATAL_ERROR "We only support makefile and ninja generator.")
endif()

project(TestProject
VERSION 0.10.3
)

find_package(Qt5 COMPONENTS CoreMultimedia) # Locate the position of Qt5.
find_package(Qt6 COMPONENTS Core OPTIONAL_COMPONENTS Multimedia) # Locate the position of Qt6.

if (NOT (Qt5_FOUND OR Qt6_FOUND))
message(FATAL_ERROR "at least one of Qt 5 and Qt 6 is needed")
endif()

if (Qt5_FOUND)
if (NOT ANDROID)
add_executable(TestProgram WIN32 MACOSX_BUNDLE main.cpp )
else()
add_library(TestProgram MODULE main.cpp )
endif()

set_property(TARGET TestProgram PROPERTY AUTOMOC ON)
set_property(TARGET TestProgram PROPERTY AUTOUIC ON)
set_property(TARGET TestProgram PROPERTY AUTORCC ON)

target_compile_definitions(TestProgram PUBLIC QT_DISABLE_DEPRECATED_BEFORE=0x60000)
target_link_libraries (TestProgram Qt5::Core Qt5::Multimedia)
if (NOT WIN32)
target_link_libraries(TestProgram dl)
endif()
endif()

if (Qt6_FOUND)
add_executable (Test6Program WIN32 MACOSX_BUNDLE main.cpp )

&n ..


#1 [20091001753 10-06 13:46]
Qt6 已经移除了 Qt5 里包含的 QtSpeech 模块。
它的 TTS 功能,非常好用啊,很实用的!
能否在官方那里,发个投票啥的,让这个模块回归。
别忘了给个链接,谢谢!
#2 回 20091001753 的帖子 [fsu0413 10-09 17:02]
20091001753:Qt6 已经移除了 Qt5 里包含的 QtSpeech 模块。
它的 TTS 功能,非常好用啊,很实用的!
能否在官方那里,发个投票啥的,让这个模块回归。
别忘了给个链接,谢谢! (2021-10-06 13:46) 
我看了下,那个模块相当简略,就是把Qt的API调用转换为platform dependent的调用。。。
这个模块没怎么用Qt内部API,你可以试试直接下载5.15的代码在6.2上编译下。
(我用不到这个模块。。。。不好意思)
#3 [fsu0413 10-09 17:05]
我重开了原QTBUG,希望我不要被Qt官方拉黑。。。。
#4 [lixinwei 10-09 17:55]
我觉得这应该是Build System的问题,当时创建问题的时候应该把Component/s选为Build System:CMake,这样Assignee就会是Qt Build System Team,会有熟悉CMake的人来回复
#5 回 lixinwei 的帖子 [fsu0413 10-09 19:13]
lixinwei:我觉得这应该是Build System的问题,当时创建问题的时候应该把Component/s选为Build System:CMake,这样Assignee就会是Qt Build System Team,会有熟悉CMake的人来回复 (2021-10-09 17:55) 
难道Qt的构建系统不是每个模块自己写自己的吗。。。。。
我改一下吧,加个component

<< 1 2 >> (1/2)

回复 发表
主题 版块