首页 > 系统相关 >Clion中使用QtCharts导致进程直接退出

Clion中使用QtCharts导致进程直接退出

时间:2023-09-23 17:14:40浏览次数:40  
标签:QT dll QtCharts COMMAND INSTALL plugins 进程 PATH Clion

解决办法:除了需要Qt6Charts.dll外,还需要引入QtOpenGL.dll、QtOpenGLWidgets.dll。

最近在看H264编码相关的实现,一头雾水。顺便写了个二进制读取文件的小工具,方便分析码流。

地址:BinaryView: 使用二进制查看文件, (gitee.com)

贴一下CMakeList:

find_package(Qt6 COMPONENTS
        Widgets
        Core
        Gui
        Charts
        OpenGL
        OpenGLWidgets
        REQUIRED)


target_link_libraries(BinaryView
        Qt::Core
        Qt::Gui
        Qt::Widgets
        Qt::Charts
        Qt::OpenGL
        Qt::OpenGLWidgets
        )

if (WIN32 AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
    set(DEBUG_SUFFIX)
    if (MSVC AND CMAKE_BUILD_TYPE MATCHES "Debug")
        set(DEBUG_SUFFIX "d")
    endif ()
    set(QT_INSTALL_PATH "${CMAKE_PREFIX_PATH}")
    if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
        set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
        if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
            set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
        endif ()
    endif ()
    if (EXISTS "${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll")
        add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
                COMMAND ${CMAKE_COMMAND} -E make_directory
                "$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
        add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
                COMMAND ${CMAKE_COMMAND} -E copy
                "${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll"
                "$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
    endif ()
    foreach (QT_LIB Core Gui Widgets Charts OpenGL OpenGLWidgets)
        add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
                COMMAND ${CMAKE_COMMAND} -E copy
                "${QT_INSTALL_PATH}/bin/Qt6${QT_LIB}${DEBUG_SUFFIX}.dll"
                "$<TARGET_FILE_DIR:${PROJECT_NAME}>")
    endforeach (QT_LIB)
endif ()

if (EXISTS "${QT_INSTALL_PATH}/plugins/styles/qwindowsvistastyle${DEBUG_SUFFIX}.dll")
    add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
            COMMAND ${CMAKE_COMMAND} -E make_directory
            "$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/styles/")
    add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
            COMMAND ${CMAKE_COMMAND} -E copy
            "${QT_INSTALL_PATH}/plugins/styles/qwindowsvistastyle${DEBUG_SUFFIX}.dll"
            "$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/styles/")
endif ()

 

标签:QT,dll,QtCharts,COMMAND,INSTALL,plugins,进程,PATH,Clion
From: https://www.cnblogs.com/wensi-eric/p/17724692.html

相关文章

  • 创建进程的三种方式
    Java中创建线程主要有三种方式,分别为继承Thread类、实现Runnable接口、实现Callable接口。一、继承Thread类继承Thread类,重写run()方法,调用start()方法启动线程publicclassThreadTest{ publicstaticclassMyThreadextendsThread{@Overridepublicvoid......
  • Python多进程
    一、multiprocessing模块提供了一个创建进程的类Process,其创建进程有两种方法:1、创建一个Process类的实例,并指定目任务函数:示例代码:1frommultiprocessingimportProcess2importos3importtime45deftask_process(delay):6num=07foriinrang......
  • linu 查看进程端口的几种方法
    kill命令Linuxkill命令用于删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。使用kill-l命令列出所有可用信号。最常用的信号是:1(HUP):重新加载进程。9(......
  • 7.3 通过API枚举进程
    首先实现枚举当前系统中所有进程信息,枚举该进程的核心点在于使用CreateToolhelp32Snapshot()函数,该函数用于创建系统进程和线程快照,它可以捕获当前系统中进程和线程相关的信息(如PID、线程数量、线程ID等),在对这些信息进行处理后,可以获得很多有用的数据,如当前系统中所有正在执行的进......
  • 7.4 通过API枚举进程权限
    GetTokenInformation用于检索进程或线程的令牌(Token)信息。Token是一个数据结构,其包含有关进程或线程的安全上下文,代表当前用户或服务的安全标识符和权限信息。GetTokenInformation函数也可以用来获取这些安全信息,通常用于在运行时检查某个进程或线程的权限或安全信息。该函数原......
  • 7.3 通过API枚举进程
    首先实现枚举当前系统中所有进程信息,枚举该进程的核心点在于使用CreateToolhelp32Snapshot()函数,该函数用于创建系统进程和线程快照,它可以捕获当前系统中进程和线程相关的信息(如PID、线程数量、线程ID等),在对这些信息进行处理后,可以获得很多有用的数据,如当前系统中所有正在执行的进......
  • 7.4 通过API枚举进程权限
    GetTokenInformation用于检索进程或线程的令牌(Token)信息。Token是一个数据结构,其包含有关进程或线程的安全上下文,代表当前用户或服务的安全标识符和权限信息。GetTokenInformation函数也可以用来获取这些安全信息,通常用于在运行时检查某个进程或线程的权限或安全信息。该函数......
  • Linux系统之进程间通信
    IPC通信IPC介绍在Linux系统中,进程间通信(IPC,Inter-ProcessCommunication)是指不同进程之间进行数据交换和共享信息的机制。进程间通信对于实现协作和协调多个进程之间的工作至关重要。为什么进程间需要通信的一些常见原因:数据共享:不同进程可能需要共享数据,以便彼此之间进......
  • 进程与句柄
    目录关联关系内核对象表主要功能进程句柄表主要功能资源的创建过程总结扩展Handle小工具相关参考进程是操作系统进行资源分配和调度的基本单位。句柄是对操作系统资源的引用,用于访问和操作这些资源(如文件、窗口、线程等)。关联关系在Windows中,句柄和进程之间的关联是通过内核......
  • 进程与线程
    目录进程定义特点线程定义特点进程与线程的联系与区别联系区别扩展并行与并发相关参考开始前先看一组非常传神的图例,相信可以帮助你更好理解进程与线程的概念:进程定义什么是进程?进程是一个具有一定独立功能的程序在一个数据集合上依次动态执行的过程。进程是计算机中正在......