gpt4 book ai didi

c++ - g++: 没有那个文件或目录?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:00:54 24 4
gpt4 key购买 nike

(在 Linux 上,尝试设置 SDL)我有一段时间使用 makefile,我发现它们很难学。这是我得到的错误。

g++: error: game.exe: No such file or directory
make: *** [game.exe] Error 1

这是我的生成文件。 (任何让它变得更好的建议都会很棒。我只是把我能找到的任何有用的东西都拼凑起来。)

#Game Make file
TARGET = game.exe
OBJS = App.o\
App_OnInit.o\
App_OnEvent.o\
App_OnLoop.o\
App_OnRender.o \
App_OnCleanup.o\

SDL_CFLAGS := $(shell sdl-config --cflags)
SDL_LDFLAGS := $(shell sdl-config --libs)
CFLAGS = -Wall -o
LIBS =
LDFLAGS =

$(TARGET): $(OBJS)
g++ $(CFLAGS) $(SDL_CFLAGS) $@ $(LDFLAGS) $(OBJS) $(SDL_LDFLAGS) $(LIBS)
%.o: src/%.cpp
g++ -c $(SDL_CFLAGS) $< $(SDL_LDFLAGS)

.PHONY: clean
clean:
rm -f $(TARGET) $(OBJS)

最佳答案

您可以交换 $(CFLAGS)$(SDL_CFLAGS)在制定$(TARGET)的规则中或者更好地删除 -o来自 CFLAGS直接放在$@之前:

...
CFLAGS = -Wall
...
$(TARGET): $(OBJS)
g++ $(CFLAGS) $(SDL_CFLAGS) -o $@ $(LDFLAGS) $(OBJS) $(SDL_LDFLAGS) $(LIBS)

-o选项应紧接在要生成的可执行文件的名称之前。在你原来的Makefile它是 $(CFLAGS) 的一部分然后是 SDL 库的 cflags。因此编译器尝试链接 game.exe ($@)而不是生成该名称的可执行文件。

关于c++ - g++: 没有那个文件或目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10895879/

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