[3rd-Party Apps] Qt Creator QML应用程序无法运行
Tofloor
poster avatar
神经蛙
deepin
2022-08-05 01:24
Author

安装 QT Creator 之后,能够运行 Widgets 应用,但是无法运行 QML 应用,qml 的官方例程也无法运行。

测试程序:
默认 QML 工程
cmake
qt6

点击 Run 之后没有任何反应,显示程序异常结束。
image.png

kits 配置

image.png

cmake 调试信息

Running /usr/bin/cmake -S /home/deepins/Desktop/qtcode/qtquicka -B /home/deepins/Desktop/qtcode/build-qtquicka-6-Debug in /home/deepins/Desktop/qtcode/build-qtquicka-6-Debug.
-- Could NOT find XKB (missing: XKB_LIBRARY XKB_INCLUDE_DIR) (Required is at least version "0.5.0")
>> message:Qt6Core_DIR /home/deepins/Qt/6.2.4/gcc_64/lib/cmake/Qt6Core
-- Configuring done
-- Generating done
-- Build files have been written to: /home/deepins/Desktop/qtcode/build-qtquicka-6-Debug
Elapsed time: 00:00.

cmake 文件

cmake_minimum_required(VERSION 3.14)

project(qtquicka VERSION 0.1 LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# QtCreator supports the following variables for Android, which are identical to qmake Android variables.
# Check https://doc.qt.io/qt/deployment-android.html for more information.
# They need to be set before the find_package(...) calls below.

#if(ANDROID)
#    set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
#    if (ANDROID_ABI STREQUAL "armeabi-v7a")
#        set(ANDROID_EXTRA_LIBS
#            ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libcrypto.so
#            ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libssl.so)
#    endif()
#endif()

find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Quick REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Quick REQUIRED)

message(">> message:Qt6Core_DIR ${Qt6Core_DIR}")

set(PROJECT_SOURCES
        main.cpp
        qml.qrc
)

if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
    qt_add_executable(qtquicka
        MANUAL_FINALIZATION
        ${PROJECT_SOURCES}
    )
else()
    if(ANDROID)
        add_library(qtquicka SHARED
            ${PROJECT_SOURCES}
        )
    else()
        add_executable(qtquicka
          ${PROJECT_SOURCES}
        )
    endif()
endif()

target_compile_definitions(qtquicka
  PRIVATE $<$,$>:QT_QML_DEBUG>)
target_link_libraries(qtquicka
  PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Quick)

set_target_properties(qtquicka PROPERTIES
    MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
    MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
    MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
)

if(QT_VERSION_MAJOR EQUAL 6)
    qt_import_qml_plugins(qtquicka)
    qt_finalize_executable(qtquicka)
endif()

🥲研究了很久也没研究出来,请大家帮我看看,谢谢。

Reply Favorite View the author
All Replies
zccrs
deepin
2022-08-05 17:38
#1

你试一下Qt5行不行,Qt6的包估计有些bug

Reply View the author
Dami-lu
deepin
2022-08-08 01:34
#2

正在复现中稍后给你答复

Reply View the author
神经蛙
deepin
2022-08-08 17:22
#3
zccrs

你试一下Qt5行不行,Qt6的包估计有些bug

Qt5 也不行,widgets 都能用,qml 用不了

Reply View the author
Dami-lu
deepin
2022-08-08 18:34
#4

系统Qt6正常无此问题,建议使用系统自带的Qt6 或者使用Qt官方的在线安装包;

Reply View the author
神经蛙
deepin
2022-08-08 19:49
#5
Dami-lu

系统Qt6正常无此问题,建议使用系统自带的Qt6 或者使用Qt官方的在线安装包;

我使用的是从Qt官方网站下载的新鲜的在线安装包,我在 Ubuntu 上面安装 Qt 很多次了,都没有问题。如果你有详细的安装步骤,请发给我,我重新安装。

Reply View the author
神经蛙
deepin
2022-08-08 21:44
#6
Dami-lu

系统Qt6正常无此问题,建议使用系统自带的Qt6 或者使用Qt官方的在线安装包;

我这是虚拟机,可能deepin系统虚拟机没法用吧。

Reply View the author
zccrs
deepin
2022-08-09 21:48
#7
神经蛙

我使用的是从Qt官方网站下载的新鲜的在线安装包,我在 Ubuntu 上面安装 Qt 很多次了,都没有问题。如果你有详细的安装步骤,请发给我,我重新安装。

官网的呀,建议用系统仓库的。

Reply View the author
zccrs
deepin
2022-08-09 21:48
#8
神经蛙

我这是虚拟机,可能deepin系统虚拟机没法用吧。

应该不会跟虚拟机有关系

Reply View the author
175******23
deepin
2022-09-06 22:38
#9

同样遇见这个问题,虚拟机deepin 通过qt在线安装程序安装qt5,发现qt widgets 可以正常运行但是qml 程序直接crashed

Reply View the author