提示コードですが下記の####コメント部内のコードですがこのコードが実行されない原因が知りたいです。コマンドプロンプトのコードのように
main.oが生成されないためwin mainがありませんのエラーが出ます。デバッグするとGAME_OBJ_DIR :=Game/obj
のGame/objにオブジェクトファイルが生成されていません。これはなぜでしょうか?
※ プロジェクトはFrameWorkとGameがありGameのMain.cppにmain関数があります
利用ライブラリ
opengl
glfw
glew
glm
stbライブラリ
assimp
全文コード
Github: https://github.com/Shigurechan/TopViewGame
環境
OS: windows10
GNU Make
g++
試したこと
順序を入れ替えて一番上に設定
ソースファイルのフォルダとオブジェクトファイルのフォルダパスを確認、中身を確認
コマンドプロンプト
C:\Users\yw325\Desktop\TopViewGame>make g++ -o program.exe -L -l FrameWork.lib -lglfw3 -lfreetype c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../libmingw32.a(main.o):(.text.startup+0xc0): undefined reference to `WinMain@16' collect2.exe: error: ld returned 1 exit status make: *** [program.exe] エラー 1
Makefile
PRG :=program.exe STATIC_LIB :=FrameWork.lib FRAMEWORK_SRC_DIR :=FrameWork/source/ GAME_SRC_DIR :=Game/source/ FRAMEWORK_OBJ_DIR :=FrameWork/obj GAME_OBJ_DIR :=Game/obj FRAMEWORK_DEP_DIR :=$(FRAMEWORK_OBJ_DIR) GAME_DEP_DIR :=$(GAME_OBJ_DIR) FRAMEWORK_SRC :=$(wildcard $(FRAMEWORK_SRC_DIR)/*.cpp) GAME_SRC :=$(wildcard $(GAME_SRC_DIR)/*.cpp) FRAMEWORK_OBJ :=$(addprefix $(FRAMEWORK_OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(FRAMEWORK_SRC)))) GAME_OBJ :=$(addprefix $(GAME_OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(GAME_SRC)))) FRAMEWORK_DEP :=$(wildcard $(FRAMEWORK_DEP_DIR)/*.d) GAME_DEP :=$(wildcard $(GAME_DEP_DIR)/*.d) $(PRG): $(GAME_OBJ) $(STATIC_LIB) #$(CXX) $(GAME_OBJ) -o $@ -ldl -lGLESv2 -lassimp -L -l $(STATIC_LIB) -L/usr/local/lib -lGLU -lGL -lglfw3 -pthread -lGL -lGLEW -lfreetype -lX11 $(CXX) $(GAME_OBJ) -o $@ -L -l $(STATIC_LIB) -lglfw3 -lfreetype -lglew32 $(STATIC_LIB): $(FRAMEWORK_OBJ) ar rc $@ $^ ranlib $@ $(FRAMEWORK_OBJ_DIR)/%.o: FrameWork/source/%.cpp $(CXX) -std=c++2a -c -MMD -MP $< -o $@ -include $(FRAMEWORK_DEP) $(GAME_OBJ_DIR)/%.o: Game/source/%.cpp $(CXX) -std=c++2a -c -MMD -MP $< -o $@ -include $(GAME_DEP) clean: rm -f ./$(FRAMEWORK_OBJ_DIR)/*.o *.out ./$(FRAMEWORK_OBJ_DIR)/*.d *.a $(STATIC_LIB) rm -f ./$(GAME_OBJ_DIR)/*.o *.out ./$(GAME_OBJ_DIR)/*.d *.a $(PRG)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/11/15 04:33
2021/11/15 04:41
退会済みユーザー
2021/11/15 06:05 編集
2021/11/15 06:18