簡體   English   中英

g ++:沒有這樣的文件或目錄?

[英]g++: No such file or directory?

(在Linux上,嘗試設置SDL)我花了一些時間來處理makefile,發現它們很難學習。 這是我遇到的錯誤。

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

這是我的makefile。 (任何關於改善它的建議都會很棒。無論我能找到什么工作,我都會被打成一片。)

#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)或更好地從CFLAGS刪除-o並將其直接放在$@之前:

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

-o選項應緊鄰要生成的可執行文件的名稱。 在您的原始Makefile它是$(CFLAGS)一部分,后跟SDL庫的C標志。 因此,編譯器嘗試鏈接game.exe$@ )而不是使用該名稱生成可執行文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM