【问题标题】:Makefile error: nothing to be doneMakefile 错误:无事可做
【发布时间】:2016-09-06 17:35:40
【问题描述】:

我的项目中有这个makefile: Please look my folders organization too

当我在/TallerMetalSlug 中运行make 时,我得到make: Nothing to be done for 'all'

我还运行cat -e -t -v Makefile 来查看选项卡是否正常,我得到了:

CXX = g++$
CXXFLAGS = -lpthread -pthread$
$
LIBRERIAS = socket.cpp$
$
CLIENTE = Cliente$
SERVIDOR = Servidor$
$
.PHONY: all clean$
$
all:cliente servidor$
$
cliente:$
^I$(CXX) $(CLIENTE)/$(CLIENTE).cpp $(LIBRERIAS) $(CXXFLAGS) -o (CLIENTE)$
$
servidor:$
^I$(CXX) $(SERVIDOR)/$(SERVIDOR).cpp $(LIBRERIAS) $(CXXFLAGS) -o (SERVIDOR)$
$
clean:$
^Irm -f $(CLIENTE)/$(CLIENTE) $(SERVIDOR)/$(SERVIDOR)$
$

【问题讨论】:

  • $ 的全部用途是什么?
  • 尝试“make clean”,然后是“make all”
  • @πάνταῥεῖ 了解cat 标志。这里的重点是表明在makefile 中使用空格而不是制表符并不是一个微不足道的常见错误。
  • @YehezkelB。好吧,在这种情况下,似乎 TAB 不行
  • @πάνταῥεῖ 为什么?所有命令都有选项卡 (^I)。 $s 是 cat 使行尾可见的方式。

标签: c++ makefile


【解决方案1】:

cliente 和 servidor 的目标输出分别为 $(CLIENTE) 和 $(SERVIDOR)。

但是干净的目标从 $(CLIENTE)/$(CLIENTE) 和 $(SERVIDOR)/$(SERVIDOR) 中删除

从截图来看,输出应该在子文件夹中。所以改变cliente和servidor目标如下

cliente:
    $(CXX) $(CLIENTE)/$(CLIENTE).cpp $(LIBRERIAS) $(CXXFLAGS) -o $(CLIENTE)/$(CLIENTE)

servidor:
    $(CXX) $(SERVIDOR)/$(SERVIDOR).cpp $(LIBRERIAS) $(CXXFLAGS) -o $(SERVIDOR)/$(SERVIDOR)

【讨论】:

    【解决方案2】:

    我修复了它添加 clienteservidor.PHONY

    CXX = g++
    CXXFLAGS = -lpthread -pthread
    
    LIBRERIAS = socket.cpp
    
    CLIENTE = Cliente
    SERVIDOR = Servidor
    
    .PHONY: all clean cliente servidor
    
    all: clean cliente servidor
    
    cliente:
        $(CXX) $(CLIENTE)/$(CLIENTE).cpp $(CLIENTE)/$(LIBRERIAS) $(CXXFLAGS) -o $(CLIENTE)/$(CLIENTE)
    
    servidor:
        $(CXX) $(SERVIDOR)/$(SERVIDOR).cpp $(SERVIDOR)/$(LIBRERIAS) $(CXXFLAGS) -o $(SERVIDOR)/$(SERVIDOR)
    
    clean:
        rm -f $(CLIENTE)/$(CLIENTE) $(SERVIDOR)/$(SERVIDOR)
    

    【讨论】:

    • 似乎更改更多是关于将clean 添加到all 目标(这不是您通常想要做的)。
    猜你喜欢
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多