【问题标题】:make: nothing can be done for 'all' errormake: 'all' 错误无能为力
【发布时间】:2020-03-25 13:04:02
【问题描述】:

我一直在尝试之前在堆栈溢出中发布的所有答案。没有什么对我有用。 下面是make文件:

export IFT_DIR=./ift
export OPF_DIR=./ift/LibOPF

all:    msp_bin

FLAGS= -O6 -Wall

$(IFT_DIR)/lib/libift.a:
$(MAKE) -C $(IFT_DIR) 

msp_bin: msp_bin.c $(IFT_DIR)/lib/libift.a
    gcc $(FLAGS) msp_bin.c -o msp_bin -I $(IFT_DIR)/include I$(IFT_DIR)/LibOPF/include -L $(IFT_DIR)/lib -lift -lm -lz
clean:
     del -f msp_bin *.a *~
     $(MAKE) clean -C $(IFT_DIR)

我收到错误消息“make: nothing can be done for all。”

【问题讨论】:

  • 缩进很重要,但您的帖子中没有任何缩进。是在您的 makefile 中还是在此处发布时出现错误?
  • 我不确定你的问题。我实际上正在尝试编写我下载的代码。我在文件夹中有 makefile 以及 msp_bin.c 文件和 msp_bin 文件(它没有扩展名)。自述文件说“只需键入 make,它将编译并生成 msp_bin”。它还询问 zlib1g。我已经安装了。
  • 您确定代码尚未构建吗? Make 避免重新构建已经构建的文件,并在发现不需要执行任何操作时发出类似的消息
  • 请考虑该软件不是为 MS Windows 编写的并且您无法在那里编译它的可能性。没有文件扩展名“.exe”的可执行文件就是这样一个指标。使用“del”而不是“rm”是一个反指标。无论如何,这样的问题需要minimal reproducible example。但是,也可以考虑向代码供应商提交错误报告。作为这里的新用户,也可以使用tour 并阅读How to Ask
  • nothing can be done 不是make 生成的实际错误消息。请剪切并粘贴您调用的命令以及运行make 时收到的exact 错误消息。

标签: c++ windows makefile gnu-make


【解决方案1】:

您可能遇到了缩进问题。 规则后面的那一行需要有一个 Tab,否则它将不起作用。

示例:

msp_bin: msp_bin.c $(IFT_DIR)/lib/libift.a
gcc $(FLAGS) msp_bin.c -o msp_bin -I $(IFT_DIR)/include ...

应该是:

msp_bin: msp_bin.c $(IFT_DIR)/lib/libift.a
    gcc $(FLAGS) msp_bin.c -o msp_bin -I $(IFT_DIR)/include ...

也请查看此答案:make: Nothing to be done for `all'

【讨论】:

  • 对不起。你说的对!我以正确的方式将代码粘贴到此处。我现在编辑了我的问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-31
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
相关资源
最近更新 更多