【发布时间】:2010-11-17 10:42:40
【问题描述】:
所以我已经用 C++ 编程将近 2 年了,而在整个过程中,我一直很高兴使用具有可爱的项目设置和自动链接等的 IDE (VS)。我一直远离任何需要我通过 makefile 编译的外部库,或者至少是那些用于 linux 环境/其他编译器的外部库。
无论如何,我现在想使用一个超级方便的实用程序(Bob Jenkins Perfect Minimal Hash),但它需要我通过 makefile 进行编译,不仅如此,还需要使用 g++ 编译器。
我继续获得了 mingW32-make 实用程序,现在正试图让它工作。我现在在哪里:
- minGW 安装成功
- 成功调用 make 实用程序
- 未能成功制作项目。
我得到的错误是:
C:\gen_progs\ph>mingw32-make
mingw32-make: *** 没有制定规则 目标
lookupa.c', needed bylookupa.o'。停下来。
还有 makefile 本身:
CFLAGS = -O
.cc.o:
gcc $(CFLAGS) -c $<
O = lookupa.o recycle.o perfhex.o perfect.o
const64 : $(O)
gcc -o perfect $(O) -lm
# DEPENDENCIES
lookupa.o : lookupa.c standard.h lookupa.h
recycle.o : recycle.c standard.h recycle.h
perfhex.o : perfhex.c standard.h lookupa.h recycle.h perfect.h
perfect.o : perfect.c standard.h lookupa.h recycle.h perfect.h
现在这个错误似乎是合理的,至少从我对 makefile 的最低理解来看,我有所有引用的 .c、.h 文件,但是我没有任何 .o 文件,而且似乎没有任何说明如何制作这些。所以我的问题是:
我是否调用 make 实用程序错误?还是我需要先编译目标文件?或者...我需要在 make 文件中添加一些内容吗?
我再次拥有所有引用的 .c 和 .h 文件。
编辑:很抱歉,我实际上错过了那个特定的文件,它似乎已经消失了。但是,将其添加回来是我现在得到的错误:
c:\gen_progs\ph>mingw32-make
cc -O -c -o lookupa.o lookupa.c
process_begin: CreateProcess(NULL, cc -O -c -o lookupa.o lookupa.c, ...) failed.
make (e=2): The system cannot find the file specified.
mingw32-make: *** [lookupa.o] Error 2
【问题讨论】:
-
你试过用 Cygwin 吗?
-
Make 抱怨它找不到lookup.c,而不是它无法制作lookup.o(C 文件有一个内置规则)。
-
你对此感到抱歉,我猜是在尝试使其文件被删除的某个地方。有关新错误,请参阅我的编辑。 @Freddy:没有试过Cygwin,如果没有解决这个错误我会尝试。