按照 VS Code 说明安装 gcc、g++:https://code.visualstudio.com/docs/cpp/config-mingw
g++ -c -Wall -pedantic hw.cpp
g++ hw.o -o hw
./hw
运行并结束,控制台中没有任何内容。
gdb ./hw
run
backtrace
使用gdb:
[New Thread 2664.0x530]
[New Thread 2664.0xe9c]
[New Thread 2664.0x2d80]
Thread 1 received signal SIGSEGV, Segmentation fault.
0x00007fff76446326 in ?? () from C:\Program Files\gnuplot\bin\libstdc++-6.dll
(gdb) backtrace
#0 0x00007fff76446326 in ?? () from C:\Program Files\gnuplot\bin\libstdc++-6.dll
#1 0x00007fff764c4759 in ?? () from C:\Program Files\gnuplot\bin\libstdc++-6.dll
#2 0x00007fff764d3187 in ?? () from C:\Program Files\gnuplot\bin\libstdc++-6.dll
#3 0x00007ff6eb141476 in main () at hw.cpp:4
hw.cpp
#include <iostream>
int main() {
std::cout << "Hello World!";
return 0;
}
检查 gcc 是否有效。以下内容已使用 gcc 编译和运行并成功打印。
helloworld.c
#include <stdio.h>
int main() {
printf("Hello, World!");
return 0;
}
我怀疑库安装不正确。我该如何解决它?
根据gdb显示
C:\Program Files\gnuplot\bin\libstdc++-6.dll
,您的PATH
环境变量中首先列出了gnuplot路径,这会导致您的msys2
应用程序使用错误的libstdc++.dll
,您需要将路径添加到以下g++.exe
编译器文件夹到您的 PATH
环境变量的 begin。
C:\msys64\mingw64\bin
或者如果您使用通用 CRT。
C:\msys64\ucrt64\bin
这样应用程序将首先加载它。