所以我已经用 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 by
lookupa.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