Makefile 给出错误,没有规则 G++ 的目标
Makefile giving error with No target for rule G++
在这里完成 Makefile 菜鸟。我不明白为什么会这样,但我认为是 whitespace/tab。我有这个 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 对 space 很着迷。无法弄清楚我做错了什么。
您需要将命令换行:
all:
$(CC) $(COMPILER_FLAGS) $(LINKER_FLAGS) $(INCLUDE_PATHS) $(LIBRARY_PATHS) $(SRC_FILES) -o $(BUILD_DIR)/$(OBJ_NAME)
并确保它是用制表符缩进的,而不是 space
也不是python,是make
您也可以使用分号将依赖项与命令分开,如下所示:
all: $(SRC_FILES); $(CC) $(COMPILER_FLAGS) $(LINKER_FLAGS) $(INCLUDE_PATHS) $(LIBRARY_PATHS) $(SRC_FILES) -o $(BUILD_DIR)/$(OBJ_NAME)
在这里完成 Makefile 菜鸟。我不明白为什么会这样,但我认为是 whitespace/tab。我有这个 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 对 space 很着迷。无法弄清楚我做错了什么。
您需要将命令换行:
all:
$(CC) $(COMPILER_FLAGS) $(LINKER_FLAGS) $(INCLUDE_PATHS) $(LIBRARY_PATHS) $(SRC_FILES) -o $(BUILD_DIR)/$(OBJ_NAME)
并确保它是用制表符缩进的,而不是 space
也不是python,是make
您也可以使用分号将依赖项与命令分开,如下所示:
all: $(SRC_FILES); $(CC) $(COMPILER_FLAGS) $(LINKER_FLAGS) $(INCLUDE_PATHS) $(LIBRARY_PATHS) $(SRC_FILES) -o $(BUILD_DIR)/$(OBJ_NAME)