@Nordman99

Mingw-w64 не хочет компилировать ничего, как исправить?

Всех приветствую, подскажите что делать, скачал mingw-w64, установил, пути в системные переменные есс-но прописал
решил для начала скомпилить типичный Hello World на C++:
#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}


Но постоянно лупит ошибку:
PS C:\progs> x86_64-w64-mingw32-g++ Hello.cpp -o hello.exe
c:/mingw64/bin/../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lstdc++
c:/mingw64/bin/../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lgcc_s
c:/mingw64/bin/../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lgcc_s
collect2.exe: error: ld returned 1 exit status


Причем на всякий случай пробовал всеми комппиляторами для C/C++ из набора, g++, gcc, x86_64-w64-mingw32-c++.exe,
x86_64-w64-mingw32-g++.exe, x86_64-w64-mingw32-g++-4.8.3.exe, x86_64-w64-mingw32-gcc.exe, x86_64-w64-mingw32-gcc-4.8.3.exe все тот же самый вывод об ошибке
Система - винда
  • Вопрос задан
  • 2366 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Anaflion
Я столкнулся в этой же проблемой.
Она оказалась в том, что mingw64 дефолтно ставящийся MSYS2 и содержащиеся библиотеки не линкуются с приложением х32: т.е. для приложений, что собираются с ключом -m32 линкер -ld не находит в \mingw64\lib совместимых библиотек.

Если вы зайдете в каталог \mingw32 в \bin и в \lib там возможно пусто будет.
Мне пришлось поставить mingw-w64-i686-gcc - C/C++

Более того - я нашел совет скачать всё разом и конфигурировать таргеты вручную (или собирать gcc под себя с --enable-multilib --with-multilib-list=m64,m32. Кстати TDM-GCC уже так и собран и я был очень этому рад, но он не поддерживает потокобезопасный (std::osyncstream) безопасный вывод с++ 20, который уже поддерживает GCC в v11.02 ведь в TDM-GCC версия 10.03... ):

pacman -S --needed base-devel mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain \
git subversion mercurial \
mingw-w64-i686-cmake mingw-w64-x86_64-cmake

Это не очень удобно с одной стороны - приходится настраивать кроме дефолтных целей сборки - Release/Debug еще и Release32/Debug32 и для последних прописывать использование \mingw32 и \bin и \lib.
--------------------------------------------------------------------------------------
Надеюсь мне подскажут лучший путь или даже подарят хорошую ссылку с просвещением почему бы не сделать мультилибные сборщики сразу? :)))
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы