不能用Cygwin make运行makefile



我正在尝试用Cygwin终端构建我的应用程序,并从Cygwin包(GNU make)安装。但是在第一次尝试之后,我得到了错误,比如"没有规则来制作目标……"。因此,我试图调查为什么它不能与Cygwin GNU make 4.1版本一起工作,而它可以与我当前的GNU make V3.81一起工作。

我发现主要问题是规则:

$(OBJ_DIR)/%.o:%.c
  do a compilation (working with 3.81)

要使它为Cygwin工作,我需要将其更改为:

$(OBJ_DIR)/%.o:%.c
  compilation done
%.c:
  do a compilation here (working with 4.1)

所以对于Cygwin版本,我需要拆分规则%.o:%.c。如果我这样做,它将不再适用于我的旧版本的GNU make 3.81。

是我的语法真的错了还是这两个版本之间有很大的差异?

我也发现v3.81是令人难以置信的慢,如果我在企业网络中,一些后台任务正在运行

通常,"No rule to make target"错误只是意味着它找不到您试图编译的文件。这可能是因为文件不存在,或者因为您指定了错误的位置来查找文件/将文件编译到。

看起来您丢失了%.c目标前面的$(OBJ_DIR)。

试试这个

$(OBJ_DIR)/%.o:%.c
  compilation done
$(OBJ_DIR)/%.c:
  do a compilation here (working with 4.1)

最新更新