注意 , 本文的报错是由于 g++ 的库缺失,如果是游戏 / 软件报错,一般是 vc 的库缺失,这两种错是不同原因的,后者需要去自己安装 vc 依赖库,可以参考这里

bug 症状:

  • 在 powershell 界面 (vscode 内置或者 win terminal 里) 32 位的 cpp 程序无法输出 (实际上是无法运行,报错被屏蔽了而已)
  • 在 cmd 界面,出现 0xc000007b 错误无法运行

如图,我使用 windows 下的 g++ 编译 cpp 程序的时候,出现这个错误

img

经过 debug, 可能原因是: 在 64 位系统上运行 32 位程序,找不到 g++ 对应的依赖

因为我使用 g++ -m32 ./test.cpp -o a.exe 这个命令,然后执行出错

解决方法为:

  • 使用 64 位编译,如上,去掉 - m32 即可
  • 使用静态编译,有时候我们必须测试 32 位程序,输入 g++ -static -m32 ./test.cpp -o a.exe 即可
  • 安装 32 位的依赖,这个比较麻烦,我懒得…