我已经为我正在工作的项目做了一个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