首页 > 解决方案 > make: 'all' 错误无能为力

问题描述

我一直在尝试之前在堆栈溢出中发布的所有答案。没有什么对我有用。下面是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”。

标签: c++windowsmakefilegnu-make

解决方案


您可能遇到了缩进问题。规则后面的行需要有一个 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'


推荐阅读