无法使用Cygwin make运行makefile

时间:2015-07-18 18:36:26

标签: makefile cygwin gnu

我正在尝试使用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会非常慢。

1 个答案:

答案 0 :(得分:0)

通常,"没有规则来制定目标"错误只是意味着它无法找到您尝试编译的文件。这可能是因为文件不存在,或者因为您指定了查找文件/编译文件的错误位置。

看起来你错过了%.c目标前面的$(OBJ_DIR)。

请改为尝试:

$(OBJ_DIR)/%.o:%.c
  compilation done

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