Как использовать GNU Make в Windows?

96

Я установил MinGW и MSYS, добавил C:\MinGW\binк , PATHно я до сих пор не могу запустить make - файл на Windows , cmd. Я хотел бы запустить cmd.exe и там набрать, например, make allно мой cmd говорит, что такой команды нет.

Что я должен делать? Я не хочу использовать оболочку MSYS, дело не в этом. Есть идеи, как использовать GNU Make в Windows cmd, как я могу это сделать в Ubuntu? Меня это не интересует Cygwin.

як
источник
1
Вам нужно будет добавить его в PATH в переменных среды в настройках вашей системы.
slugonamission
@slugonamission: уже сделал, написал :)
як
Запустить make.exe вместо make?
slugonamission
2
@slugonamission: я сделал это! Я добавил C:\MinGW\msys\1.0\binв PATH, и это сработало! : D Но все еще есть проблемы, makeпоказывает мне: pastie.org/private/ixaaqbq2xl3geyg0emnow
як
1
В вашей allцели hello.exe должен находиться в той же строке, allчтобы считаться зависимостью для цели. В противном случае становится частью задачи all.
slugonamission

Ответы:

101

Вот как я заставил это работать:

  copy c:\MinGW\bin\mingw32-make.exe c:\MinGW\bin\make.exe

Затем я могу открыть командную строку и набрать make:

  C:\Users\Dell>make
  make: *** No targets specified and no makefile found.  Stop.

Значит, теперь он работает!

user1594322
источник
10
@Imray На мой взгляд, до сих пор не до конца ясно: марка распространяется в виде файла mingw32-make.exe. Поскольку каталог c:\MinGW\binнаходится на системном пути, вы можете использовать его mingw32-makeкак команду или скопировать (более безопасный вариант переименования) в mingw32-make.exeфайл just make.exe.
Томаш Зато - Восстановите Монику
1
Вам в значительной степени следует избегать включения msys или mingw в переменные среды по причинам раздувания, а также потому, что каталог msys является локальным для себя. Путь в msys позволит вам использовать make, если он находится в bin mingw64, но не говоря об этой проблеме. Также, не говоря о проблеме, вы должны создать ЖЕСТкую ссылку на mingw32-make.exe как make.exe, что упростит жизнь и не нужно клонировать exe. Попробуйте:mklink /H C:\MinGW\bin\mingw32-make.exe C:\MinGW\bin\make.exe
user2262111 02
9

Я использую GNU Make из проекта GnuWin32, см. Http://gnuwin32.sourceforge.net/, но в настоящее время не было никаких обновлений, поэтому я не уверен в статусе этого проекта.

Колин т Харт
источник
6

Хотя это старый вопрос, его все еще задают многие, кто использует MSYS2 .

Я начал использовать его в этом году для замены CygWin, и я очень доволен.

Для установки makeоткройте оболочку MSYS2 и введите следующие команды:

# Update the package database and core system packages
pacman -Syu
# Close shell and open again if needed

# Update again
pacman -Su

# Install make
pacman -S make

# Test it (show version)
make -v
Дельфино
источник
3

Вы можете добавить папку приложения на свой путь из командной строки, используя:

setx PATH "% PATH%; c: \ MinGW \ bin"

Обратите внимание, что вам, вероятно, потребуется открыть новое командное окно, чтобы измененный параметр пути вступил в силу.

Баггибой
источник
2

В качестве альтернативы, если вы просто хотите установить make, вы можете использовать шоколадный менеджер пакетов для установки gnu make с помощью

choco install make -y

Это касается любых проблем с путями, которые могут у вас возникнуть.

Иво Мершиерс
источник
0

user1594322 дал правильный ответ, но когда я попробовал, я столкнулся с проблемами администратора / разрешения. Мне удалось скопировать mingw32-make.exe и вставить его, отменив / обойдя проблемы администратора, а затем отредактировав копию в make.exe. На VirtualBox в гостевой системе Win7.

DBourne
источник
0

Хотя сам make доступен как отдельный исполняемый файл ( gnuwin32.sourceforge.netпакетmake ), использование его в надлежащей среде разработки означает использование msys2 .

Git 2.24 (4 квартал 2019 г.) показывает, что:

См. Фиксацию 4668931 , фиксацию b35304b , фиксацию ab7d854 , фиксацию be5d88e , фиксацию 5d65ad1 , фиксацию 030a628 , фиксацию 61d1d92 , фиксацию e4347c9 , фиксацию ed712ef , фиксацию 5b8f9e2 , фиксацию 41616ef , фиксацию c097b95 (4 октября 2019 г.) и фиксацию dbcd970 (30 сентября 2019 г.) пользователя Johannes Schindelin ( dscho) .
(Объединено Junio ​​C Hamano - gitster- в коммите 6d5291b , 15 октября 2019 г.)

test-tool run-command: научиться запускать (части) набора тестов

Подписано: Йоханнес Шинделин

Git для Windows перескакивает через все препятствия, чтобы предоставить среду разработки, которая позволяет создавать Git и запускать его набор тестов.

С этой целью вся система MSYS2, включая GNU make и GCC, предлагается как «Git for Windows SDK».
За это приходится платить: первоначальная загрузка указанного SDK весит несколько сотен мегабайт, а распакованный SDK занимает ~ 2 ГБ дискового пространства.

Visual Studio - гораздо более естественная среда разработки для Windows. Чтобы помочь участникам использовать эту среду, у нас уже есть цель Makefile, vcxprojкоторая генерирует фиксацию с файлами проекта (и другими сгенерированными файлами), а vs/masterветка Git для Windows постоянно повторно генерируется с использованием этой цели.

Идея состоит в том, чтобы разрешить сборку Git в Visual Studio и запускать отдельные тесты с помощью Portable Git.

VonC
источник