我正在嘗試爲Windows上的mingw編寫的makefile,並將其作爲編譯器在cl.exe中進行交換。我刪除了GCC特有的cflags,並用.obj代替.o。我根本沒有改變規則,所以我不知道這是否應該是一個問題。在makefile中用MS cl.exe替換mingw g ++
我得到以下錯誤...
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) [email protected]
$(BUILD_DIR)/$(MAIN).obj: $(SRC_DIR)/WavFileTool.cpp
$(CC) $(CFLAGS) [email protected] $<
$(BUILD_DIR)/%.obj: $(SRC_DIR)/%.cpp $(SRC_DIR)/%.h
$(CC) $(CFLAGS) [email protected] $<
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)
添加更改後仍然存在相同的錯誤。 – ScottF
我更新了答案,以更正CFLAGS和鏈接命令,這是我第一次錯過。 – dxiv