iostream 库无法使用 Qt 的 cmake

iostream library doesn't work using Qt's cmake

提问人:cmatteo 提问时间:8/30/2023 最后编辑:genpfaultcmatteo 更新时间:8/30/2023 访问量:77

问:

我最近用CLion设置了Qt6,以便开始制作小型GUI。但是,当我第一次尝试使用“cout”添加一些控制台输出时。我的代码退出代码 (0xC0000005)...

这是我的CMakeLists,.txt

cmake_minimum_required(VERSION 3.26)
project(Simple_GUI)

set(CMAKE_CXX_STANDARD 17)

#=============== INCLUSION OF Qt ================#
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_PREFIX_PATH "C:\\Qt\\6.5.2\\mingw_64\\lib\\cmake")

find_package(Qt6Core REQUIRED) #find needed packages
find_package(Qt6Widgets REQUIRED)

#=========== ADDING EXECUTABLE AND LINKING LIBRARIES ============#
add_executable(${PROJECT_NAME} main.cpp)

target_link_libraries(${PROJECT_NAME} Qt6::Widgets)

这是main.cpp:

#include <QtCore/QCoreApplication>
#include <QDebug>
#include <string>
#include <iostream>

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

    std::string h("Hello World");
    qDebug() << h;
    std::cout << h << std::endl;

    //==========Minimal source code of a Qt application=====:
    QCoreApplication app(argc, argv); 

    return QCoreApplication::exec();
}

当我拿出 std::cout << 的那一刻......行,一切又好了。qDebug() 也可以工作。

编辑:这是GDB输出:

enter image description here

c++ qt cmake iostream 未处理异常

评论

2赞 Quimby 8/30/2023
是否可以从调试器添加堆栈跟踪?究竟是什么产生了这个段错误?
1赞 drescherjm 8/30/2023
我将在 msys2 中进行测试。编辑:它编译并运行没有问题。我的猜测是你有dll地狱
0赞 n. m. could be an AI 8/30/2023
Windows GUI 模式应用程序中的控制台输出通常不起作用,人们经常需要跳过重重障碍才能重新启用它(尽管它通常不会像您的情况那样崩溃)。
0赞 hyde 8/30/2023
尝试 Dependency Walker 和 Process Explorer 工具。对于 Process Explorer,您可以尝试在崩溃行之前添加暂停,例如丑陋但完美的 ,这样您就可以看到加载了哪些库。很有可能,来自某个错误目录的库被加载了。您可以考虑从 PATH 中删除该目录(甚至卸载),或者您可以将正确的库复制到 .exe 所在的同一目录。system("pause");

答: 暂无答案