by_kapt0xa
@by_kapt0xa
Учу кресты катаюсь на велике

Почему линкер возврашает ошибку при компиляции hello_world?

у меня самый простой код:

#include <iostream>

using namespace std;

int main()
{
    cout << "hello world" << endl;
}


я пытаюсь его скомпилировать в командной строке и не получается - линкер не находит какие-то библиотеки которые я впервые в жизни вижу

C:\Users\kuzmi\source\repos\VSC_lil_proj>where g++
C:\Program Files\mingw64\bin\g++.exe
C:\Program Files (x86)\mingw32\bin\g++.exe

C:\Users\kuzmi\source\repos\VSC_lil_proj>g++ hello_world.cpp
C:/Program Files/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lmsvcrt: No such file or directory
C:/Program Files/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lpthread: No such file or directory
C:/Program Files/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lshell32: No such file or directory
C:/Program Files/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -luser32: No such file or directory
C:/Program Files/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lmsvcrt: No such file or directory
collect2.exe: error: ld returned 1 exit status
  • Вопрос задан
  • 698 просмотров
Решения вопроса 1
by_kapt0xa
@by_kapt0xa Автор вопроса
Учу кресты катаюсь на велике
я удалил mingw и поставил LLVM
вместо g++ использую clang
очень важно чтобы при вызове clang вызывался именно clang из папки LLVM а не из папки mingw
я переустановил mingw, через установщик. до этого устанавливал, васпаковывая архив, получилось так себе.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
ну и добавьте пути к библиотекам

https://stackoverflow.com/questions/12868808/how-t...

добавьте
-LC:/Program Files/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/libs/
-Wl,--exclude-libs=libpthread.a
-Wl,--exclude-libs=libshell32.a
-Wl,--exclude-libs=libuser32.a
Ответ написан
@res2001
Developer, ex-admin
Использую msys2+mingw. msys2 предоставляет линукс окружение, командную строку и пакетный менеджер. Из командной строки msys2 все собирается без подобных плясок с бубном.
В пакетном менеджере куча готовых библиотек и разного софта.
Кроме mingw, можно использовать и clang, а так же и то и другое. Все ставится из пакетного менеджера.
Если прописать пару путей в PATH и задать 1-2 дополнительных переменных окружения, то все будет доступно из cmd, а так же может быть использовано практически любыми IDE (qtcreator, eclipse, ...)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы