0

我在 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.ccc.

我跑了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 有什么问题?

4

1 回答 1

5

我认为问题出在你的$PATH.

看起来您已经安装了 MinGW 和 Cygwin。它们是相似但不同的环境。

Cygwinmake命令是/usr/bin/make(通常C:\cygwin\bin\make)。您正在调用 MinGWmake命令/cygdrive/c/MinGW/bin/make( C:\MinGW\bin/make)。但它正在尝试调用 Cygwincc命令/usr/bin/cc( C:\cygwin\bin\cc)。

调整你的$PATH/usr/bin出现在之前 /cygdrive/c/MinGW/bin,你应该没问题。您可能想通过修改$HOME/.bash_profile文件来做到这一点。

于 2012-08-10T08:15:47.587 回答