2016-01-29 6 views
0

Я пытаюсь скомпилировать проект в Windows 7 с помощью GNUWin32 make. Я бегу сделать из папки, где Makefile сидит, но я получаю следующее сообщение об ошибке:GnuWin32 make возвращает странную ошибку на квадратной скобке

[ ! -d libmf ] && mkdir -p libmf 
"[" is not recognised as internal or external command, operable program or batch file 

Я думаю, что по какой-то причине CMD интерпретатор не разобрать квадратные скобки, но это обозначение описано в руководствах, и Makefile поступает от поставщика и считается правильным. Я попробовал «сделать» с разными целями, текст в ошибочных изменениях строки (цель определяет макрос там), но ошибка такая же. место в Makefile, который вызывает это выглядит следующим образом:

libmf$(LIBSUFFIX): 
       [ ! -d [email protected] ] && mkdir -p [email protected] 
+0

'[! -d libmf] 'является синтаксисом bash, это не сработает, если вы не вызываете make в оболочке bash, подобной той, которая предоставляется Cygwin или Msys2. – user657267

+0

Вы правы, спасибо. С помощью cygwin это работает нормально! –

ответ

0

Найдено решение. Должен использовать cygwin вместо gnuwin32, так как gnuwin32 не содержит всех необходимых команд. Любопытная деталь: cygwin фактически имеет программу [.exe] для эмуляции синтаксического разбора bash.

Смежные вопросы