3

私は自分のmakefileを書き込むIDEを使ったコーディングの贅沢を楽しんでいます。Ivは私がずっと「ショートカット」であると判断したので、いくつかのマニュアルを読み、makefileに関するいくつかのビデオを見て、 makefileが半完成しました。私が抱えている唯一の問題は、ライブラリをリンクする方法がわからないことです。

CPPS := $(shell ls src/*cpp)
TEMP := $(subst src/,obj/,$(CPPS))
OBJS := $(subst .cpp,.o,$(TEMP))
HEADERS := $(shell ls inc/*.h)
EXEC := bin/testfile

all: $(EXEC)

$(EXEC) : $(OBJS) $(HEADERS)
g++ -I inc/ $(OBJS) -o $(EXEC) -lSDL -lGLU
$(EXEC)

obj/%.o: src/%.cpp
g++ -Wall -I inc/ -c $< -o $@

ps:「ライブラリフラグ」と言ったときに間違ったことを言っている場合に備えて-lSDL -lGLU...

私がそれらをどこに置いても、それらは機能しないようです。

これは、libフラグを挿入したときに発生するエラーです。 make: *** [bin/testfile] Error 255

エラー255は、コマンドシェルが特定のルールのコマンドを見つけられなかった結果としてmakeによって生成されます。

それらを含めないと、標準の「未定義」メッセージが表示されます。

これに関する助けをいただければ幸いです。ありがとうございました

4

1 に答える 1

1

実行可能ファイルをビルドした後、実行しようとしているように見えますか?

その場合の問題は、PATHに現在のディレクトリがないことです。だからmakeは見つけることができません$(EXEC)

あなたはおそらく./$(EXEC)それを直接実行するために行うべきです。

また、プログラムの実行を別の(PHONY)ターゲットに移動して、ビルドステップだけを実行し、ビルドする$(EXEC)必要がないときに実行できるようにする必要があります。

(タブの欠如は、そうでなけれmakeば不平を言うように、単なるスタックオーバーフローフォーマットであると思います)。

于 2012-04-10T10:24:00.673 に答える