Qt可执行错误:0xc0000139试图在Qt应用程序中合并c++

Qt Executable error : 0xc0000139 trying to merge c++ in qt application

本文关键字:Qt 应用程序 合并 c++ 可执行 错误 0xc0000139      更新时间:2023-10-16

我在qt有一个简单的应用程序,我试图链接一些代码,我必须它。然而,当我合并项目中的文件时,它会编译,但我在启动时得到一个错误。当我尝试调试它时,我得到一个弹出消息告诉我可执行错误:在启动期间,程序退出代码0xc0000139。

我在谷歌搜索,我发现这可能是一个dll错误。我得承认,我真的不知道图书馆是怎么工作的,所以我有点困惑。

我试图通过函数导入代码函数,看看是什么在工作,是什么在产生错误。像这样的简单函数:

void descendanceOf(std::vector< std::list<int> >& tree, int node){
        std::list<int> descendance;
        descendance.push_back(4);
}

产生一个错误,但是我这样做:

bool isFatherOf(const std::vector < std::list < int > >& tree, int node1, int node2){ 
    for(std::list<int>::const_iterator it = tree[node1].begin();
            it != tree[node1].end(); it++){
        if((*it) == node2){
            return true;
        }
    }
    return false;
}

工作得很好。我困惑。起初我以为它与std库有关,但两个函数都使用它。

您应该下载一个dependency walker的副本,以确定应用程序是否可以找到大多数所需的dll(不是通过dlopen加载的)。http://msdn.microsoft.com/en-us/library/ms235265.aspx

对于windows,所有/大多数dll的路径通常在环境变量%PATH%中。

您可以启动cmd提示符并输入"set"来查看所有环境变量