gpt4 book ai didi

c++ - 如何在Windows的Makefile中写入路径

转载 作者:行者123 更新时间:2023-12-02 10:35:06 25 4
gpt4 key购买 nike

我正在运行Windows 10,正在尝试编写Makefile来编译使用SFML库以及nuklear库的C++文件。我安装了MinGW并将其添加到我的PATH中,并且我还安装了GNU Make并将其添加到我的PATH中。因此,我可以从“命令提示符”窗口中调用makegcc

我正在编辑的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)

但是根据 nuklear documentation,我需要在Makefile中包括 nuklear.h对于我的项目,我有一个名为include的目录,其中包含nuklear.h完整路径类似于:
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中指定路径时,我会丢失一些东西。当路径包含空格时,如何在我的Makefile中添加完整路径?

最佳答案

我解决了这个问题。

首先,我将项目从Github Repositories目录移到了一个新目录,该目录包含,没有空格,GitHub_Repositories。这解决了路径问题。

其次,我必须在插入标签而不是空格之前

$(CC) $(SRC) $(CFLAGS) -o $(BIN) $(SFML_INC) $(SFML_LIB) $(LIBS)

以前(就像在原始帖子中看到的那样),那里有空格。

关于c++ - 如何在Windows的Makefile中写入路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60678714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com