c - 我不知道这个 makefile 有什么问题?

标签 c makefile gnu-make

我正在尝试为名为 lil-gp 的遗传编程编译一个 C 库.

我不知道这类问题在这里问是否合适,但我正在就此寻求认真的帮助。

makefile 位于目录lilgp1.1/1.1/kernel 下,命名为GNUmakefile.kernel。它看起来像这样:

kobjects = main.o gp.o eval.o tree.o change.o crossovr.o reproduc.o \
    mutate.o select.o tournmnt.o bstworst.o fitness.o genspace.o \
    exch.o populate.o ephem.o ckpoint.o event.o pretty.o individ.o \
    params.o random.o memory.o output.o

kheaders = event.h defines.h types.h protos.h protoapp.h

.PHONY : all clean

LIBS += -lm
CFLAGS += -I. -I$(KERNELDIR) 

all : $(TARGET)

lilgp.h = $(addprefix $(KERNELDIR)/,$(kheaders)) $(uheaders)

$(kobjects) : %.o : $(KERNELDIR)/%.c
    $(CC) -c $(CFLAGS) $< -o $@

$(uobjects) : %.o : %.c
    $(CC) -c $(CFLAGS) $< -o $@

$(kobjects) $(uobjects) : $(lilgp.h)

$(TARGET) : $(kobjects) $(uobjects)
    $(CC) $(LFLAGS) -o $@ $^ $(LIBS) 

clean :
    \rm -f $(kobjects) $(uobjects) core

作为第一步,我遵循了这些步骤:

  1. 我将其重命名为Makefile
  2. 其次,我将 all : $(TARGET) 移动到 clean: ...

但是 GNU make 向我提示:

make: *** No rule to make target `/main.c', needed by `main.o'.  Stop.

最佳答案

从错误消息中可以清楚地看出 $(KERNELDIR) 是空白的。我会在整个项目树中搜索 KERNELDIR 并从那里获取它...

关于c - 我不知道这个 makefile 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8604524/

相关文章:

windows - GNU Make - 如何添加时间戳输出(最小化 makefile 修改)

c - 在命令行中定义输入类型

c - 如何在C中解码base64?

linux - cmake:如何抑制 "Entering directory"消息?

c - 忽略一个特定文件的错误

python-3.x - 无法执行 make dev server 命令

makefile - GNU Make 目标在 "up to date"之前构建了两次;为什么不在第一遍之后呢?

c++ - 在fopen()之后和相应的fclose()之前使用system()(文件描述符泄漏)

c - 在 Raspberry Pi 上为 C 设置 i2c?

c++ - Ubuntu 上的 Eclipse : No rule to make target `all' error using existing makefile/project