te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>ubuntu - Qt 6.5: Deploying to Linux with CMake - QML runtime missing - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

ubuntu - Qt 6.5: Deploying to Linux with CMake - QML runtime missing - Stack Overflow

programmeradmin3浏览0评论

I'm developing a Qt/QML application on Ubuntu 22.04 with the official Qt SDK 6.5.3 and I'm referring to these instructions:

This worked otherwise fine, but I get this when I try to run my application:

2025-02-17T20:13:24.034 [I] Application: Loading entry point qrc:/qt/qml/noteahead/view/qml/Main.qml
QQmlApplicationEngine failed to load component
qrc:/qt/qml/noteahead/view/qml/Main.qml:20:1: module "QtQuick.Dialogs" is not installed
qrc:/qt/qml/noteahead/view/qml/Main.qml:19:1: module "QtQuick.Controls.Universal" is not installed
qrc:/qt/qml/noteahead/view/qml/Main.qml:18:1: module "QtQuick.Controls" is not     installed
qrc:/qt/qml/noteahead/view/qml/Main.qml:17:1: module "QtQuick" is not installed

And yes, that's correct - they are not installed on my system outside the SDK. However, I was under impression that the CMake magic script would bundle also the needed QML runtime in the .deb..? The installation config in my CMakeLists.txt is now like this:

qt_add_qml_module(${BINARY_NAME}
    URI ${URI}
    QML_FILES ${QML_SOURCE_FILES}
    RESOURCES ${SVG_SOURCE_FILES}
)

target_compile_definitions(${BINARY_NAME} PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
target_compile_definitions(${BINARY_NAME} PRIVATE QML_ROOT_DIR="${QML_ROOT_DIR}")
target_compile_definitions(${BINARY_NAME} PRIVATE QML_ENTRY_POINT="${MAIN}")
target_link_libraries(${BINARY_NAME} PRIVATE Qt6::Core Qt6::Quick rtmidi SimpleLogger Argengine)

install(TARGETS ${BINARY_NAME}
    RUNTIME DESTINATION bin
)

# Install the executable into "${CMAKE_INSTALL_PREFIX}/bin".
install(TARGETS ${BINARY_NAME}
    BUNDLE DESTINATION .
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

# Generate the deployment script for the target Noteahead.
qt_generate_deploy_app_script(
    TARGET ${BINARY_NAME}
    OUTPUT_SCRIPT deploy_script
    NO_UNSUPPORTED_PLATFORM_ERROR
)

# Call the deployment script during "cmake --install".
install(SCRIPT ${deploy_script})

# Set up CPack for Debian packaging
set(CPACK_PACKAGE_NAME "noteahead")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Noteahead MIDI Tracker")
set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME})
set(CPACK_VERBATIM_VARIABLES ON)
set(CPACK_PACKAGING_INSTALL_PREFIX "/opt/noteahead")
set(CPACK_DEBIAN_PACKAGE_DEPENDS libc6 libstdc++6 libgcc-s1 libasound2 librtmidi6)
include(CPack)

This all seems to be a bit pointless if I need to manually still add all runtime packages as dependencies: qml6-module-qtqml qml6-module-qtcore qml6-module-qtquick-dialogs qml6-module-qtquick-templates.

The problem is that I need Qt 6.5+ and it's available in the repositories only in Ubuntu 24.10 and later.

发布评论

评论列表(0)

  1. 暂无评论