使用std :: string导致Windows"找不到入口点"

Hyd*_*per 6 c++ windows gcc runtime-error windows-8

当我用GCC编译时:

#include <iostream>
#include <string>

int main()
{
    std::cout << std::string("\r\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

通过使用以下批次:

g++ -Wall main.cc
Run Code Online (Sandbox Code Playgroud)

并尝试执行output(a.exe),然后Windows崩溃初始化时出现此错误:

运行时错误

如果我避免std::string在C++代码中使用它会正常执行,甚至包括<string>.有任何想法吗?

注意,第一次测试std::string.

我运行Windows 8/64位.我的编译器包含这个文件build-info.txt:

# **************************************************************************

version : MinGW-W64-builds-4.3.0
user    : nixman
date    : 03.30.2017- 1:01:08 PM
args    : --mode=gcc-6.3.0 --buildroot=/c/mingw630 --jobs=2 --rev=2 --threads=win32 --exceptions=sjlj --arch=i686 --bin-compress

[much more here...]

# **************************************************************************
Run Code Online (Sandbox Code Playgroud)

另请注意,我习惯于禁用和卸载所有可能的防病毒实用程序(例如,Windows Defender).

小智 1

很难找到解决方案(zZZzzZzZzZz),但最后,它是在这个答案上。

g++ -Wall -D_GLIBCXX_USE_CXX11_ABI=0 main.cc
Run Code Online (Sandbox Code Playgroud)

  • 这表明您正在使用不匹配的 gcc 和 glibc 版本...它的作用是告诉它不要使用 c++11 名称修饰来调用 glibc 中的标准库实现... (2认同)