2015-09-15 3 views
0

Недавно я установил MinGW и научился использовать Make. Но я получаю сообщение об ошибке, когда пытаюсь скомпилировать исходный файл CPP с помощью make. Ниже приведены результаты:Ошибка «неправильной команды или файла» при компиляции с помощью g ++ с использованием Make

MAKE Version 3.6 Copyright (c) 1991 Borland International 

Available memory 33397872 bytes 

     mingw32-g++ main.cpp --std=c++11 -o program 
Bad command or file name 

Основной.cpp - очень простая программа типа «Hello World». Команда работает, когда я использую ее непосредственно в командной строке.
Я запускаю Windows 8.1 с MinGW. GCC версии 4.8

+2

Является ли каталог для двоичных файлов MinGw в переменной 'PATH'? Также обычно это должно быть просто 'g ++'. –

+0

Да, двоичные файлы находятся в моей переменной пути. Оба mingw32-g ++ и g ++ выполняют свою работу. Первая версия MinGW. –

+0

Вы не разместили файл makefile. Вы отправили результат неудачной make. –

ответ

1

Как отметил еще один респондент, вы не должны пытаться уговаривать антиквариат Borland make на работу с MinGW; наиболее подходящим вариантом для вас будет либо mingw32-make, (родная версия Windows GNU make, подходящая для использования непосредственно из сеанса оболочки cmd.exe), либо установите MSYS MinGW.org и используйте make, который он предоставляет; любой из них может быть установлен с помощью менеджера установки MinixWare mingw-get.

Любой из этих вариантов должен работать на вас, избегая наворотов Cygwin (или одинаково раздутого MSYS2, который не следует путать с продуктом MSG MinGW.org). Помните, что если вы выберете вариант MSYS, вы будете устанавливать очень легкую вилку старой, но все же вполне адекватной и способной версии Cygwin.

В заключении, чтобы очистить вашу очевидную путаницу, я хотел бы также отметить, что g++.exe, которые вы найдете в каталоге $MINGW32_ROOT/bin и mingw32-g++.exe, к которому вы обращаетесь, это одно и то же - и являются MinGW, и вы обычно вызываете его просто как g++.

+0

Спасибо за ответ. Только теперь я понял, что make и mingw32-make были не той же командой. Я также установил Turbo C++ для исследовательских целей и добавил свою папку в свою переменную PATH. Прочитав ваш ответ, я изменил свою команду. Огромное спасибо. –

2

Я думаю, что вы хотели бы узнать GNU make, не Borland один из 1991

Убедитесь, что вы установили GNU сделать пакет в Cygwin. Убедитесь, что она присутствует, набрав в командной Баш строке:

$ type -a make 

Он должен ответить что-то вроде:

/usr/bin/make 
/bin/make 

И потом:

$ make --version 

Который должен ответить что-то вроде :

GNU Make 4.1 
Built for x86_64-unknown-linux-gnu 
Copyright (C) 1988-2014 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. 
+0

Есть ли способ получить эту версию на MinGW? Я не хочу загружать Cygwin. –

+0

@VishalSubramanyamRajesh Я бы посмотрел документацию MinGW. –

+0

Я не думаю, что проблема связана с MinGW. Команда работает, когда я ввожу ее в командную строку напрямую. –