我遇到了Cygwin中c代码编译的问题。 我的环境是Window Xp中的Cygwin,
$ which make
/cygdrive/c/MinGW/bin/make
$ which cc
/usr/bin/cc.exe
我的makefile看起来像:
CC=cc
CFLAGS= -g -std=c99 -Wall -pedantic
EXE=graph
SRCS=graph.c
$(EXE):$(OBJS)
$(CC) $(CFLAGS) $(SRCS) -o $(EXE)
CLEAN:
rm -fr $(OBJS) $(EXE)*
文件graph.c
与cc
位于同一文件夹中。
我运行make
,但显示
cc -g -std=c99 -Wall -pedantic graph.c -o graph
process_begin: CreateProcess(C:\cygwin\bin\cc.exe, cc -g -std=c99 -Wall -pedantic graph.c -o graph, ...) failed.
make (e=5): Access is denied.
make: *** [graph] Error 5
但是当我跑cc -g -std=c99 -Wall -pedantic graph.c -o graph
时
它工作正常。
我是Cygwin的新手,我的设置或makefile有什么问题?
答案 0 :(得分:5)
我认为问题出在$PATH
。
看起来你已经安装了MinGW和Cygwin。他们是相似但不同的环境。
Cygwin make
命令为/usr/bin/make
(通常为C:\cygwin\bin\make
)。您正在调用MinGW make
命令/cygdrive/c/MinGW/bin/make
(C:\MinGW\bin/make
)。但是它试图调用Cygwin cc
命令,/usr/bin/cc
(C:\cygwin\bin\cc
)。
调整$PATH
以便{/ 1}} /usr/bin
之前显示,您应该没问题。您可能希望通过修改/cygdrive/c/MinGW/bin
文件来执行此操作。