如何解决两个冲突的 QT 版本

问题描述

我在我的项目中使用 ParallelsVirtualizationSDK.framework。我更喜欢使用 Qt6 而不是 Qt5。但是,ParallelsVirtualizationSDK.framework 依赖于 Qt 5.15.1,当我在我的项目中使用 Qt 6.0.2(通过自制软件安装)时,出现此错误

objc[94021]: Class QMacAutoReleasePoolTracker is implemented in both /Library/Frameworks/ParallelsVirtualizationSDK.framework/Versions/9/Frameworks/QtCore.framework/Versions/5/QtCore (0x106d5d228) and /opt/homebrew/opt/qt/lib/QtCore.framework/Versions/A/QtCore (0x102b3d320). One of the two will be used. Which one is undefined.
objc[94021]: Class QT_ROOT_LEVEL_POOL__THESE_OBJECTS_WILL_BE_RELEASED_WHEN_QAPP_GOES_OUT_OF_ScopE is implemented in both /Library/Frameworks/ParallelsVirtualizationSDK.framework/Versions/9/Frameworks/QtCore.framework/Versions/5/QtCore (0x106d5d2a0) and /opt/homebrew/opt/qt/lib/QtCore.framework/Versions/A/QtCore (0x102b3d398). One of the two will be used. Which one is undefined.
objc[94021]: Class keyvalueObserver is implemented in both /Library/Frameworks/ParallelsVirtualizationSDK.framework/Versions/9/Frameworks/QtCore.framework/Versions/5/QtCore (0x106d5d2c8) and /opt/homebrew/opt/qt/lib/QtCore.framework/Versions/A/QtCore (0x102b3d3c0). One of the two will be used. Which one is undefined.
objc[94021]: Class RunLoopModeTracker is implemented in both /Library/Frameworks/ParallelsVirtualizationSDK.framework/Versions/9/Frameworks/QtCore.framework/Versions/5/QtCore (0x106d5d318) and /opt/homebrew/opt/qt/lib/QtCore.framework/Versions/A/QtCore (0x102b3d410). One of the two will be used. Which one is undefined.

这是 CMakeLists.txt:

cmake_minimum_required(VERSION 3.19)
project(Parallels_Desktop_Launcher)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_PREFIX_PATH $ENV{QMAKE_PREFIX_PATH}) # QMAKE_PREFIX_PATH is set to /opt/homebrew/Cellar/qt/6.0.2/
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

set(QT_VERSION 6)
set(QT_required_LIBS Core Gui Widgets)
set(QT_required_LIBS_QUALIFIED Qt6::Core Qt6::Gui Qt6::Widgets)

add_executable(${PROJECT_NAME} main.cpp)

if (NOT CMAKE_PREFIX_PATH)
    message(WARNING "CMAKE_PREFIX_PATH is not defined,you may need to set it "
            "(-DCMAKE_PREFIX_PATH=\"path/to/Qt/lib/cmake\" or -DCMAKE_PREFIX_PATH=/usr/include/{host}/qt{version}/ on Ubuntu)")
endif ()

find_library(ParaLLELS_VIRTUALIZATION_SDK ParallelsVirtualizationSDK)
find_package(Qt${QT_VERSION} COMPONENTS ${QT_required_LIBS} required)
target_link_libraries(${PROJECT_NAME} ${QT_required_LIBS_QUALIFIED} ${ParaLLELS_VIRTUALIZATION_SDK})

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)