2014-09-25 72 views
0

我試圖運行我的makefile正常運行,但由於某些原因,使甚至不能夠運行一個簡單的「CLS」,我得到的是:Makefile文件無法在Windows

使all_w

process_begin:CreateProcess(NULL,cls,...)失敗。 (e = 2):El sistema no puede encontrar el archivo especificado。 化妝:* [all_w]錯誤2

這裏是我的makefile:

all_l: 
    make clean_all_l 
    make lexer 
    make lexerpiece_l 

all_w: 
    cls 
    # make clean_all_w 
    # make parser 
    # make lexer 
    # make parserpiece_w 

lexerpiece_l: 
    gcc lex.yy.c -o lexerpiece_l -lfl -lm 
    @echo Done 

lexerpiece_w: 
    gcc lex.yy.c -o lexerpiece_w -lfl -lm 
    @echo Done 

parserpiece_w: 
    gcc lua_parser.tab.c lex.yy.c -lfl -lm -o parserpiece_w 
    @echo Done 

clean: 
    $(info Limpiando el Proyecto) 
    -del lexerpiece.exe 
    -del parserpiece.exe 
    @echo Done 

clean_all_w: 
    $(info Realizando limpieza profunda) 
    #cls 
    -del lex.yy.c 
    #-del lua_parser.tab.c 
    #-del lua_parser.tab.h 
    #-del lexerpiece_w.exe 
    #-del parserpiece_w.exe 
    #cls 

clean_all_l: 
    $(info Realizando limpieza profunda) 
    -rm lex.yy.c 
    -rm lexerpiece 
    clear 

#Esto corre FLEX y crea el nuevo lexer 
lexer: 
    flex lua_lexer.l 
    @echo Lexer creado 

#Esto corre BISON y crea el nuevo parser 
parser: 
    bison -d lua_parser.y 
    @echo Parser creado 

#Esto correra FLEX sobre un archivo de testing 
lexer_test: 
    flex test.l 
    @echo Lexer de prueba creado 

當然,我已經更新了$ PATH變量。

有什麼想法?

+0

'cls'是一個內置的命令,而不是可執行文件。 'cmd/c cls'可能工作。 – 2014-09-25 01:23:51

+0

如果您不使用Cygwin,則此鏈接可能會對您有所幫助: http://stackoverflow.com/questions/2463037/calling-windows-commands-eg-del-from-a-gnu-makefile – pez 2014-09-25 01:23:54

+0

在Windows上使用make可以是一個真正的痛苦。由於你似乎沒有使用某些特定的Windows東西,我建議切換,並使用一些「嚴重」(玩笑)操作系統。事情會突然變得更容易。如果不能,請將一些發行版安裝到虛擬機中。 – kebs 2014-09-25 16:10:39

回答

0

我遇到了與msys2相同的問題。我有固定添加此行代碼MAKEFILE:瞭解這個變量

SHELL=CMD 

附加信息在GNU make manual