我刚刚安装了MinGW,因为我想使用轻量级代码编辑器而不是Visual Studio或Codeblocks编写代码,这两者都是我从未遇到过的问题。所以代码编译和工作,但由于某种原因,每次我尝试使用字符串或字符指针时崩溃。例如这段代码:
#include <iostream>
int main()
{
std::string a;
a = "Hello";
std::cout << a;
std::cin.get();
}
执行时抛出此错误:
但是这段代码:
#include <iostream>
int main()
{
std::cout << "hello";
std::cin.get();
}
完美的工作:
(我用std :: string和const char *都尝试过没有区别)
我安装了Visual Studio 2017,我不知道是否可能是这个问题。 MinGW 6.0.3版。
PD:我只将C:/ MinGW / bin目录添加到Path环境,不知道是否应该添加任何其他目录
固定它!出于某种原因,g ++默认情况下会动态链接std库。由于我的程序没有找到dll,因此无法链接std :: string和std :: cout。解决方案是将-static-libstdc ++参数传递给g ++。
TL; DR:而不是像这样直接编译:
g++ somesourcefile.cpp
试试这个论点:
g++ somesourcefile.cpp -static-libstdc++