我有一个 Makefile 来构建一些简单的 Python 绑定(bind)。不幸的是,在普通的 make
或 make all
上,它每次都会重建,即使 py11_bindings.cpp
没有改变。我检查了源文件是否会被意外触及或发生其他情况,但据我所知情况并非如此。
PYTHON = /Library/Frameworks/Python.framework/Versions/3.5/bin
CPP = c++
INC = -I/software/pybind11/include -I/software/eigen
PYTHONCFG = `$(PYTHON)/python3.5-config --cflags --ldflags`
SRC = py11_bindings.cpp
TARGET = _chain.so
all: $(SRC)
$(CPP) -O3 -shared -std=c++11 $(INC) $(PYTHONCFG) $^ -o $(TARGET)
clean:
rm $(TARGET)
我完全不知道为什么会发生这种情况。
最佳答案
我不是 makefile 专家,所以我可能没有使用正确的术语。
但是:您的all:
定义了创建源文件的时间,它应该列出要创建的目标。然后,您应该为每个目标列出依赖项并描述如何创建它。
因此,您的 makefile 应如下所示:
all: $(TARGET)
$(TARGET) : $(SRC)
$(CPP) -O3 -shared -std=c++11 $(INC) $(PYTHONCFG) $^ -o $(TARGET)
关于python - 为什么这个 Makefile 每次都要重建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44066602/