我正在尝试使用为 Windows 上的 mingw 编写的 makefile,并将 cl.exe 作为编译器进行交换。我删除了特定于 GCC 的 cflag,并将 .o 替换为 .obj。我根本没有改变规则,所以我不知道这是否应该是一个问题。
我收到以下错误...
cl /link build/WavFileTool.obj src/WavFileTool.cpp
process_begin: CreateProcess(NULL, cl /link build/WavFileTool.obj src/WavFileTool.cpp, ...) failed.
make (e=2): The system cannot find the file specified.
这是我的makefile
CC := cl
CFLAGS := /link
BIN_DIR := bin
BUILD_DIR := build
SRC_DIR := src
MAIN := WavFileTool
TARGET := wavfiletool.exe
SOURCES := $(wildcard src/*.cpp)
OBJECTS := $(SOURCES:$(SRC_DIR)/%.cpp=$(BUILD_DIR)/%.obj)
$(BIN_DIR)/$(TARGET): CREATE_DIRS $(BUILD_DIR)/$(MAIN).obj $(OBJECTS)
$(CC) $(OBJECTS) $@
$(BUILD_DIR)/$(MAIN).obj: $(SRC_DIR)/WavFileTool.cpp
$(CC) $(CFLAGS) $@ $<
$(BUILD_DIR)/%.obj: $(SRC_DIR)/%.cpp $(SRC_DIR)/%.h
$(CC) $(CFLAGS) $@ $<
CREATE_DIRS:
if not exist $(BIN_DIR) mkdir $(BIN_DIR)
if not exist $(BUILD_DIR) mkdir $(BUILD_DIR)
CLEAN:
if exist $(BUILD_DIR) rmdir /Q /S $(BUILD_DIR)