在這里完成 Makefile 菜鳥。我無法弄清楚為什么會發生這種情況,但我認為它是空格/制表符。我有這個 Makefile:
BUILD_DIR = build/debug
CC = g
SRC_FILES = $(wildcard $(SRC_DIR)/*.cpp)
OBJ_NAME = play
INCLUDE_PATHS = -Iinclude
LIBRARY_PATHS = -Llib
COMPILER_FLAGS = -std=c 11 -Wall -O0 -g
LINKER_FLAGS = -lsdl2
all: $(CC) $(COMPILER_FLAGS) $(LINKER_FLAGS) $(INCLUDE_PATHS) $(LIBRARY_PATHS) $(SRC_FILES) -o $(BUILD_DIR)/$(OBJ_NAME)
它給出了這個錯誤:
make: *** No rule to make target `g ', needed by `all'. Stop.
如果我用制表符將字串移到底部,然后只all:在一行上使用,而在另一行上使用字串,則會給出以下資訊:
Makefile:12: *** missing separator. Stop.
我認為 Python 對空間很著迷。無法弄清楚我做錯了什么。
uj5u.com熱心網友回復:
您需要將命令放在新行上:
all:
$(CC) $(COMPILER_FLAGS) $(LINKER_FLAGS) $(INCLUDE_PATHS) $(LIBRARY_PATHS) $(SRC_FILES) -o $(BUILD_DIR)/$(OBJ_NAME)
并確保它用制表符縮進,而不是空格
它也不是 python,它是 make
您還可以使用分號將依賴項與如下命令分開:
all: $(SRC_FILES); $(CC) $(COMPILER_FLAGS) $(LINKER_FLAGS) $(INCLUDE_PATHS) $(LIBRARY_PATHS) $(SRC_FILES) -o $(BUILD_DIR)/$(OBJ_NAME)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/400655.html
