我已經爲我正在工作的項目做了一個makefile,我的代碼總是重新編譯,我不知道爲什麼......我已經嘗試將.PHONY添加到所有目標,但沒有工作。下面是生成文件:爲什麼這個makefile總是重新編譯?
TARGET = csv2sqlite
CXX = g++
CXXFLAGS = -std=c++11 -Wall -I $(INCDIR) -fdiagnostics-color=always -D_DEBUG
OBJECTS = csv.o main.o
BINDIR = bin
OBJDIR = obj
INCDIR = inc
SRCDIR = src
.PHONY:default
default: $(OBJECTS) $(TARGET)
%.o: $(SRCDIR)/%.cpp
@echo "Compiling dependecies..."
$(CXX) $(CXXFLAGS) -c $< -o $(OBJDIR)/[email protected]
@echo "Done compiling [email protected]"
$(TARGET): $(addprefix $(OBJDIR)/, $(OBJECTS))
@echo "Linking [email protected] file..."
$(CXX) $(CXXFLAGS) $^ -o $(BINDIR)/[email protected]
@echo "Linking [email protected] file..."
run:
bin/$(TARGET)
clean:
rm -f obj/* bin/$(TARGET)
而且目錄樹是:
project
├── inc
│ └── csv.hpp
├── src
│ ├── csv.cpp
│ └── main.cpp
├── obj
│ ├── csv.o
│ └── main.o
├── bin
│ └── csv2sqlite
└── makefile
下面是完整的project如果你想看到它。另外,我能做些什麼改進?
謝謝!
您鏈接GitHub的項目不包括你發佈的代碼。 – DevSolar