gpt4 book ai didi

c++ - 为什么 CLion 可以正确构建和链接 Qt,但不能运行我的可执行文件?

转载 作者:行者123 更新时间:2023-12-01 14:20:27 27 4
gpt4 key购买 nike

概括
我正在尝试在 Windows 上的 Clion 中编译和运行/调试 Qt 代码。 CMake 和构建过程都不会返回错误。
发生以下情况:

  • 当我尝试运行时,我得到 Process finished with exit code -1073741511 (0xC0000139)
  • 当我尝试调试时,我得到 Process finished with exit code 1
  • 当我尝试直接通过 Windows CMD 运行可执行文件时,可执行文件按预期运行。
  • 当我将所有 dll 文件从 ../Qt/5.12.6/mingw73_64/bin 复制到项目的 cmake-build-debug 文件夹时,可执行文件会按预期在 CLion 中运行和调试。

  • 我的设置
  • Windows 10
  • Qt 5.12.6(mingw73_64 构建)
  • CLion 2019.2.5
  • MinGW (x86_64-8.1.0-win32-seh-rt_v6_rev0)
  • CMake(捆绑,3.15.3)

  • 其他发现
    我相信 StackOverflow 上有许多相关主题可以解决相同的问题。但是没有人设法为我认为是路径/环境问题提供明确的答案。许多建议归结为“将 Qt 添加到您的路径/路径/路径环境变量并重新启动重新启动!”,和/或主要与 linux 安装有关。因此,我希望对于在此上下文中遇到相同错误代码的人来说,这成为一个更完整的问题和答案,因为它可能与同一问题有关。
    由于事情在 CLion 之外工作(如 (3) 所示)并且在我复制 DLL (4) 时在 CLion 内部工作,我相信由于 CLion 相关的环境问题,我正在处理动态链接问题。将 Qt bin 文件夹(即 C:\Qt\5.12.6\mingw73_64\bin )添加到我的 System Environment Variables 中,这样我就可以直接从 CMD 运行 exe 文件。请注意,我将 Qt bin 文件夹路径添加到 Path 变量中。
    鉴于有人在网上提到由于 CLion 以某个系统用户身份运行,这可能是用户变量的问题,我还将所述路径添加为 User Environment Variable ,再次添加 Path 。可惜。
    此外,我尝试通过 Settings -> Appearance & Behavior -> Path Variables 将其作为环境变量直接添加到 CLion 中。在这里,我尝试将 Qt bin 文件夹分别映射到 PathPATHQT_DIR 。尽管我尝试了很多次重启,但仍然没有成功。在更改路径等之间多次尝试重新启动 Windows 和实际关闭。
    主要问题:
    如何解决我描述的问题,以便我可以在 CLion 中运行和调试我的 Qt 构建,而不必将 Qt 相关的 DLL 复制到可执行文件所在的 cmake-build-debug
    CMakeLists.txt
    Settings -> Build, Execution, Deployment -> CMake 中,我将 CMake options: 设置为 -DCMAKE_PREFIX_PATH=C:\\Qt\\5.12.6\\mingw73_64\\lib\\cmake
    cmake_minimum_required(VERSION 3.8)
    project(HelloWorld)

    set(CMAKE_CXX_STANDARD 14)

    # Include a library search using find_package()
    # via REQUIRED, specify that libraries are required
    find_package(Qt5Core REQUIRED)
    find_package(Qt5Gui REQUIRED)
    find_package(Qt5Widgets REQUIRED)

    set(SOURCE_FILES main.cpp)
    add_executable(${PROJECT_NAME} ${SOURCE_FILES})

    # specify which libraries to connect
    target_link_libraries(${PROJECT_NAME} Qt5::Core)
    target_link_libraries(${PROJECT_NAME} Qt5::Gui)
    target_link_libraries(${PROJECT_NAME} Qt5::Widgets)
    主程序
    #include <QtWidgets/QApplication>
    #include <QtWidgets/QWidget>
    #include <QtWidgets/QGridLayout>
    #include <QtWidgets/QLabel>

    int main (int argc, char * argv []) {

    QApplication app (argc, argv);

    QWidget widget;
    widget.resize (640, 480);
    widget.setWindowTitle ("Hello, world !!!");

    QGridLayout * gridLayout = new QGridLayout (& widget);

    QLabel * label = new QLabel ("Hello, world !!!");
    label-> setAlignment (Qt :: AlignVCenter | Qt :: AlignHCenter);
    gridLayout-> addWidget (label);

    widget.show ();

    return app.exec ();
    }

    最佳答案

    这已经为我解决了。

    解决方法如下:

  • 转到 edit configurations
  • 将Qt bin文件夹添加到Working directory
  • 点击 OK 和/或 APPLY

  • 现在我可以直接在 CLion 中运行和构建我的 Qt 应用程序。

    Edit configurations option
    Run/Debug Configurations window

    关于c++ - 为什么 CLion 可以正确构建和链接 Qt,但不能运行我的可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59187030/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com