2016-09-06 38 views
-2

我有此生成的文件在我的proyect: Please look my folders organization tooMakefile的錯誤:什麼工作要做

當我在/TallerMetalSlug運行make我得到make: Nothing to be done for 'all'

我也跑cat -e -t -v Makefile,看看標籤都OK,我也得到:

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)$ 
$ 
+1

什麼是所有'$'的? –

+0

嘗試「make clean」後跟「make all」 – robor78

+0

@πάνταῥεῖ閱讀關於'cat'標誌。這裏的要點是要證明,在'makefile'中使用空格而不是製表符是一個普通的錯誤。 –

回答

0

我固定它添加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) 
+0

看起來好像這個改變更多地是將'clean'添加到'all'目標(這不是你通常想做的事)。 –

1

客戶端和servidor目標分別輸出到$(CLIENTE)和$(SERVIDOR)。

但乾淨的目標從$(CLIENTE)/ $(CLIENTE)和$(SERVIDOR)/ $(SERVIDOR)

通過截圖來看刪除,輸出應該是在子文件夾中。所以改變客戶和服務商的目標如下

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

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