【问题标题】:weird c++ string bug with gcc奇怪的 c++ 字符串错误与 gcc
【发布时间】:2021-10-24 00:53:18
【问题描述】:

有人能解释一下这里发生了什么吗?

#include <iostream>
#include <string>
using namespace std;

int main() {
    string kek = "kek";
    cout << "test" << endl;
    return 0;
}

由于某种原因,每次我用 g++ 编译时,我声明了一个 string 变量,我看不到任何输出,没有编译或运行时错误,根本没有输出。

现在,如果我将代码改为:

#include <iostream>
#include <string>
using namespace std;

int main() {
    // string kek = "kek";
    cout << "test" << endl;
    return 0;
}

然后一切正常。

有谁知道这里的问题是什么?

我目前在 Windows 10 上,使用 gcc 8.1.0。

编辑: 同样的事情,但使用 bash,linux 编译

我认为我的mingw版本有问题所以尝试重新安装它

【问题讨论】:

  • 代码对我来说看起来不错。您只需要对其进行调试以查看运行时实际发生的情况。
  • g++ main2.cpp -o out.exe 你不应该运行out.exe 而不是out
  • @Ch3steR 在 Windows 中同样可以接受。
  • @WaisKamal 不,这显然不是问题,因为当我 commnet 字符串声明并重新编译它正在打印下一行。
  • @WaisKamal 知道了。我没有使用过我不知道的 Windows。

标签: c++ gcc compilation


【解决方案1】:

好吧,我仍然不知道那个错误是关于什么的, 但是当我拥有它时,我拥有的MinGW版本是32位, 将 MinGW 安装更改为 64 位,修复了该问题。

我什么都没改变,除了从我的 comp 中删除 MinGW 32bit, 并设置 MinGW 64 位。

Swaping from MinGW 32bit to 64bit, fixed the issue.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 1970-01-01
    相关资源
    最近更新 更多