gpt4 book ai didi

c++ - 使用 std::string 或 char 指针时 G++ 编译的应用程序崩溃

转载 作者:行者123 更新时间:2023-11-28 04:47:14 24 4
gpt4 key购买 nike

我刚刚安装了 MinGW,因为我想使用轻量级代码编辑器而不是 Visual Studio 或 Codeblocks 编写代码,这两种我都没有遇到过问题。因此代码可以编译并运行,但由于某种原因,每次我尝试使用字符串或字符指针时它都会崩溃。例如这段代码:

#include <iostream>

int main()
{
std::string a;
a = "Hello";
std::cout << a;
std::cin.get();
}

执行时抛出这个错误:

error

但是这段代码:

#include <iostream>

int main()
{
std::cout << "hello";
std::cin.get();
}

完美运行:

image

(我试过 std::string 和 const char* 都没有区别)

我安装了 Visual Studio 2017,我不知道这是否是问题所在。MinGW 版本 6.0.3。

PD: 我只在 Path 环境中添加了 C:/MinGW/bin 目录,不知道是否应该添加任何其他目录

最佳答案

修复了!出于某种原因,g++ 默认情况下会动态链接 std 库。由于我的程序没有找到 dll,因此无法链接 std::string 和 std::cout。解决方案是将 -static-libstdc++ 参数传递给 g++。

长话短说:而不是像这样直接编译:

g++ somesourcefile.cpp

试试这个论点:

g++ somesourcefile.cpp -static-libstdc++

关于c++ - 使用 std::string 或 char 指针时 G++ 编译的应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49037978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com