0

(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)
4

1 に答える 1

4

あなたは交換$(CFLAGS)$(SDL_CFLAGS)、ルールの中で、それを削除する$(TARGET)か、それを削除-oするかCFLAGS、前に直接置くことができ$@ます。

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

-oオプションは、生成される実行可能ファイルの名前の直前にある必要があります。オリジナルでは、SDL ライブラリの C フラグのMakefile一部であり、その後に続きます。$(CFLAGS)したがって、コンパイラは、その名前で実行可能ファイルを作成する代わりに、 game.exe( ) にリンクしようとします。$@

于 2012-06-05T10:49:41.917 に答える