我正在运行Windows 10,并试图编写一个Makefile来编译一个使用SFML库以及C++库的无核文件。我安装了MinGW并将其添加到我的PATH中,我还安装了GNU并将其添加到我的PATH中。因此,我可以从命令提示符窗口调用make和gcc。
我正在编辑的Makefile是:
# Install
CC = gcc
BIN = demo
# Flags
CFLAGS += -s -O2
SRC = main.cpp
OBJ = $(SRC:.cpp=.o)
# Edit the line below to point to your SFML folder on Windows
SFML_DIR = C:/SFML-2.5.1/
BIN := $(BIN).exe
LIBS = -lmingw32 -DSFML_STATIC -lsfml-window-s -lsfml-system-s -lopengl32 -lwinmm -lgdi32
SFML_INC = -I $(SFML_DIR)/include
SFML_LIB = -L $(SFML_DIR)/lib
$(BIN):
$(CC) $(SRC) $(CFLAGS) -o $(BIN) $(SFML_INC) $(SFML_LIB) $(LIBS)但是根据核文件,我需要在Makefile中包含nuklear.h。对于我的项目,我有一个名为include 的目录,其中包含了完整路径类似于:
C:/Users/Me/Github Repositories/folder-1/folder-2/include/因此,我在Makefile中添加了以下内容:
SFML_DIR = C:/SFML-2.5.1/
INCL_DIR = C:/Users/Me/Github Repositories/folder-1/folder-2/include/
$(BIN):
# $(CC) $(SRC) $(CFLAGS) -o $(BIN) $(SFML_INC) $(SFML_LIB) $(LIBS)
$(CC) $(SRC) $(CFLAGS) -o $(BIN) -I $(INCL_DIR) $(SFML_INC) $(SFML_LIB) $(LIBS)我向nuklear.h添加了路径,并通过指定-I标志要求将其包含在编译中。但是,当我运行Make时,我会得到以下错误
makefile:23: *** missing separator. Stop.现在,在路径上有一个空间("Github“)。因此,我认为我需要添加引号,以包括完整的路径。
但是,当我向完整路径添加引号时,会得到以下错误:
make: *** No rule to make target `/Users/Me/Github', needed by `demo.exe'. Stop.因此,在Windows上指定Makefile中的路径时,我遗漏了一些东西。当路径包含空格时,如何在生成文件中添加完整的路径?
发布于 2020-03-14 03:07:35
我解决了问题。
首先,我将我的项目移出了Github Repositories目录,并进入了一个新的目录,其中包含了一个新的目录,其中包含了无空间,GitHub_Repositories。解决了路径问题。
第二,我必须插入一个选项卡,而不是空间。
$(CC) $(SRC) $(CFLAGS) -o $(BIN) $(SFML_INC) $(SFML_LIB) $(LIBS)以前(正如人们在最初的文章中所看到的),那里有一些空格。
https://stackoverflow.com/questions/60678714
复制相似问题