Хочу запустить код на C++ в VS Code. Делал всё как в документации. Когда пишу в cmd строку g++ --version всё нормально и показует версию. В path пользователя добавил C:\msys64\mingw64\bin.
Запускаю VS Code, создаю файл main.cpp, в нём пишу банальный код для вывода Hello World. Дальше Terminal>Run Build Task... выбираю C/C++: gcc.exe build active file. В терминале выскакивает ошибка collect2.exe: error: ld returned 1 exit status.
main.cpp
#include <iostream>
int main()
{
std::cout << "Hello World" << std::endl;
}
Терминал после запуска кода
> Executing task: C/C++: gcc.exe build active file <
Starting build...
C:\msys64\mingw64\bin\gcc.exe -fdiagnostics-color=always -g C:\Users\Arvil\Desktop\Nosov\main.cpp -o C:\Users\Arvil\Desktop\Nosov\main.exe
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\Arvil\AppData\Local\Temp\ccrvI3MQ.o:C:\Users\Arvil\Desktop\Nosov/main.cpp:5: undefined reference to std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\Arvil\AppData\Local\Temp\ccrvI3MQ.o: in functionmain':
C:\Users\Arvil\Desktop\Nosov/main.cpp:5: undefined reference to std::ostream::operator<<(std::ostream& (*)(std::ostream&))' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\Arvil\AppData\Local\Temp\ccrvI3MQ.o:C:/msys64/mingw64/include/c++/11.2.0/iostream:74: undefined reference tostd::ios_base::Init::~Init()'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\Arvil\AppData\Local\Temp\ccrvI3MQ.o:C:/msys64/mingw64/include/c++/11.2.0/iostream:74: undefined reference to std::ios_base::Init::Init()' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\Arvil\AppData\Local\Temp\ccrvI3MQ.o:main.cpp:(.rdata$.refptr._ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_[.refptr._ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_]+0x0): undefined reference tostd::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\Arvil\AppData\Local\Temp\ccrvI3MQ.o:main.cpp:(.rdata$.refptr._ZSt4cout[.refptr._ZSt4cout]+0x0): undefined reference to `std::cout'
collect2.exe: error: ld returned 1 exit status
Build finished with error(s).
Terminal will be reused by tasks, press any key to close it.
P.S. Не знаю имеет ли это значение, но в папке с main.cpp есть и другие различные файлы .cpp, хотя я запускал только этот. Также создавал отдельную папку только с main.cpp и всё равно была эта ошибка.
gcc.exeдля C.g++.exeдля C++. – HolyBlackCat Apr 21 '22 at 20:55