使用向量退出值127的MinGW C ++

时间:2013-07-25 19:52:24

标签: c++ windows vector mingw

我在C ++中使用vector时遇到问题。我在Windows + NetBeans上使用MinGW。

以下代码:

#include <vector>
using namespace std;
int main(int argc, char** argv){
  vector<int> vec;
  return 0;
}

它编译没有任何错误,但是在运行时它总是失败,退出值为-1.073.741.511或退出值为127(这意味着ERROR_PROC_NOT_FOUND)。

直接启动exe会显示错误消息,如:

entrypoint '__gx_personality_v0' not fount in 'libstdc++-6.dll'.

我已经尝试了-lstdc++

#include <cstdlib>

那么问题是什么?如何解决?

Netbeans输出:

"/C/MinGW/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make.exe[1]: Entering directory `/c/Users/Josch/CppApplication_1'
"/C/MinGW/msys/1.0/bin/make.exe"  -f nbproject/Makefile-Debug.mk dist/Debug/MinGW1-Windows/cppapplication_1.exe
make.exe[2]: Entering directory `/c/Users/Josch/CppApplication_1'
mkdir -p build/Debug/MinGW1-Windows
rm -f build/Debug/MinGW1-Windows/main.o.d
g++    -c -g -MMD -MP -MF build/Debug/MinGW1-Windows/main.o.d -o build/Debug/MinGW1-Windows/main.o main.cpp
mkdir -p dist/Debug/MinGW1-Windows
g++     -o dist/Debug/MinGW1-Windows/cppapplication_1 build/Debug/MinGW1-Windows/main.o 
make.exe[2]: Leaving directory `/c/Users/Josch/CppApplication_1'
make.exe[1]: Leaving directory `/c/Users/Josch/CppApplication_1'

BUILD SUCCESSFUL (total time: 4s)

编辑:当然main应该返回int - 修复它并使用namespace std添加;

1 个答案:

答案 0 :(得分:5)

好的,我找到了解决方案。

问题是添加到MiKTeX变量的PATH安装。因此,Windows链接到不同版本的libstdc++-6.dll

最后我找到了两个解决方案:

  1. -static-libstdc++编译以避免链接错误的DLL。

  2. libstdc++-6.dllMinGW\bin复制到与编译的EXE相同的文件夹中。这将导致Windows始终链接DLL的正确版本。

  3. 虽然问题非常具体,但我希望它也有助于其他人。 ;)