Makefile问题 - 目标命令没有被执行

时间:2017-07-16 04:07:30

标签: makefile

我有以下makefile。当我运行“make”或“make all”时,我得到以下输出:

make all -n

protoc -I protos/ --cpp_out=protos-gen/ protos//fd.proto
g++-4.9  -O4 -std=c++14 -g  -I/usr/local/include -pthread  -c -o protos-gen//fd.pb.o protos-gen//fd.pb.cc
protoc -I protos/ --grpc_out=protos-gen/ --plugin=protoc-gen-grpc=`which grpc_cpp_plugin` protos//fd.proto
python -m grpc_tools.protoc -I protos/ --python_out=protos-gen/ --grpc_python_out=protos-gen/ protos//fd.proto
g++-4.9  -O4 -std=c++14 -g  -I/usr/local/include -pthread  -c -o protos-gen//fd.grpc.pb.o protos-gen//fd.grpc.pb.cc

问题是:我没有看到执行以下行:

$(CXX) $(CXXFLAGS) $(INCLUDE)  $(SOURCE_DIR)/fd_server_grpc.cpp $(DLIB_DIR)/dlib/all/source.cpp  -DDLIB_JPEG_SUPPORT=1  -DDLIB_PNG_SUPPORT=1 $(LIB) -lzmq -o $(BIN_DIR)/fd_server_grpc

我缺少什么?

======================

SOURCE_DIR = src
BUILD_DIR  = build
BIN_DIR    = bin
DLIB_DIR   = ../../3rdparty/dlib/

all: $(BIN_DIR)/fd_server_grpc $(BIN_DIR)/fd_client_grpc

$(BIN_DIR)/fd_server_grpc: $(PROTOS_GEN_PATH)/fd.pb.o 
$(PROTOS_GEN_PATH)/fd.grpc.pb.o $(SOURCE_DIR)/fd_server_grpc.cpp 
$(DLIB_DIR)/dlib/all/source.cpp
        $(CXX) $(CXXFLAGS) $(INCLUDE)  $(SOURCE_DIR)/fd_server_grpc.cpp 
$(DLIB_DIR)/dlib/all/source.cpp  -DDLIB_JPEG_SUPPORT=1  -DDLIB_PNG_SUPPORT=1 $(LIB) -lzmq -o $(BIN_DIR)/fd_server_grpc

$(BIN_DIR)/fd_client_grpc: $(PROTOS_GEN_PATH)/fd.pb.o 
$(PROTOS_GEN_PATH)/fd.grpc.pb.o $(SOURCE_DIR)/fd_client_grpc.cpp 
$(DLIB_DIR)/dlib/all/source.cpp
        $(CXX) $(CXXFLAGS) $(INCLUDE)  $(SOURCE_DIR)/fd_client_grpc.cpp  
$(DLIB_DIR)/dlib/all/source.cpp  -DDLIB_JPEG_SUPPORT=1  -DDLIB_PNG_SUPPORT=1 
$(LIB) -lzmq -o $(BIN_DIR)/fd_client_grpc

.PRECIOUS $(PROTOS_GEN_PATH)/fd.grpc.pb.cc $(PROTOS_GEN_PATH)/fd.pb.cc:

$(PROTOS_GEN_PATH)/fd.pb.o:$(PROTOS_GEN_PATH)/fd.pb.cc
$(PROTOS_GEN_PATH)/fd.pb.cc: $(PROTOS_PATH)/fd.proto
        $(PROTOC) -I $(PROTOS_PATH) --cpp_out=$(PROTOS_GEN_PATH) $(PROTOS_PATH)/fd.proto

$(PROTOS_GEN_PATH)/fd.grpc.pb.o:$(PROTOS_GEN_PATH)/fd.grpc.pb.cc
$(PROTOS_GEN_PATH)/fd.grpc.pb.cc: $(PROTOS_PATH)/fd.proto
        $(PROTOC) -I $(PROTOS_PATH) --grpc_out=$(PROTOS_GEN_PATH) --plugin=protoc-gen-grpc=$(GRPC_CPP_PLUGIN_PATH) $(PROTOS_PATH)/fd.proto
        python -m grpc_tools.protoc -I $(PROTOS_PATH) --python_out=$(PROTOS_GEN_PATH) --grpc_python_out=$(PROTOS_GEN_PATH) $(PROTOS_PATH)/fd.proto

clean:
        rm -f $(BUILD_DIR)/* $(BIN_DIR)/* $(PROTOS_GEN_PATH)/*

1 个答案:

答案 0 :(得分:0)

我想出来了。 $(CXX)行没有以标签开头;有8个空格而不是。一旦我介绍了标签,它就运行得很好。谢谢大家!