昨日、Linuxでmakefileプロジェクトをコンパイルしました。これでプロジェクトはコンパイルされず、makefile自体に変更を加えたことを思い出せません。make: *** No rule to make target 'obj/TranquilMain.o', needed by 'tranquil;. Stop.
でエラーをスローしますmake
。私が行った唯一の実際の変更は、コードとmakefileを別のプロジェクトからコピーしたときに、特定のファイル(および依存関係を含む)の名前を変更してから、makefileのを変更したこと_DEPS
です。必要な場所にあるすべてのファイル。
_OBJリストからTranquilMain.o以外のすべてのファイルを削除すると、正常にコンパイルされることに注意してください。enter code here
コードとこの知識以上のものを提供できればいいのですが、問題が何であるかはわかりません。
適切なMakefile:「makefile」
#!/usr/bin/make
CC = gcc
CP = g++
SRC_DIR = #.
OBJ_DIR = obj
INC_DIR = ../include
LIB_DIR = ../lib
LIBS = -lm -lSDL -lSDLmain -lSDL_image -lSDL_mixer -lSDL_ttf -lSDL_net -lGL -lGLU -lGLEW
CFLAGS = -I$(INC_DIR) -L$(LIB_DIR) -std=gnu++0x
_DEPS = DefaultConfig.h BaseApplication.h BasePlugin.h SDLImage.h SDLFont.h SDLWindow.h SDLInput.h SDLRenderer.h SDLApplication.h Math2D.h SDLTimer.h
DEPS = $(patsubst %,$(INC_DIR)/%,$(_DEPS))
_OBJ = TranquilMain.o BaseApplication.o BasePlugin.o SDLImage.o SDLFont.o SDLWindow.o SDLInput.o SDLRenderer.o SDLApplication.o Math2D.o SDLTimer.o
OBJ = $(patsubst %,$(OBJ_DIR)/%,$(_OBJ))
$(OBJ_DIR)/%.o: %.cpp $(DEPS)
$(CP) -c -o $@ $< $(CFLAGS)
tranquil: $(OBJ)
$(CP) -o ../bin/$@ $^ $(CFLAGS) $(LIBS)
.PHONY: clean
clean:
rm -f $(OBJ_DIR)/*.o *~ core $(INC_DIR)/*~
明らかに役に立たないTranquilMain.cpp(依存関係の最初のファイルのみ)
#include <iostream>
#include <fstream>
#include <string>
int main( int argc, char* args[] )
{
bool running = true;
while( running == true )
{
}
return 0;
}