提示コードですがGame/sourceディレクトリに下記のMain.cppでint main() 関数を定義しているのにもかかわらずコンパイルエラーになる原因はなぜでしょうか?Main.cpp単体でコンパイルしましたがコンパイルは通ります。
Main.cppでmain関数を定義しています。
端末
$ make g++ -o GL -lGLESv2 -lassimp -L/usr/local/lib -lGLU -lGL -lglfw3 -pthread -lGL -lGLEW -lfreetype -lX11 /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o: 関数 `_start' 内: (.text+0x24): `main' に対する定義されていない参照です collect2: エラー: ld はステータス 1 で終了しました make: *** [Makefile:14: GL] エラー 1
Main.cpp
#include <iostream> //#include "../../FrameWork/header/FrameWork.hpp" //#include "../../FrameWork/header/Resource.hpp" //#include "../../FrameWork/header/Camera.hpp" //#include "../../FrameWork/header/VertexData.hpp" int main() { /* FrameWork::Init(glm::ivec2(800, 600), glm::ivec2(4, 2), "FrameWork"); //初期化 FrameWork::Camera::Init(); //カメラ初期化 while (*FrameWork::windowContext) { FrameWork::windowContext->FrameUpdate(glm::vec4(0, 0, 0, 255)); FrameWork::windowContext->Wait(); FrameWork::windowContext->SwapBuffers(); } */ return 0; }
Makefile
PRG :=GL FRAMEWORK_SRC_DIR :=FrameWork/source/ GAME_SRC_DIR :=Game/source/ OBJ_DIR :=obj FRAMEWORK_DEP_DIR :=obj GAME_DEP_DIR :=obj FRAMEWORK_OBJ :=$(addprefix $(OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(FRAMEWORK_SRC_DIR)))) GAME_OBJ :=$(addprefix $(OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(GAME_SRC_DIR)))) OBJ :=$(GAME_OBJ) $(FRAMEWORK_OBJ) FRAMEWORK_DEP :=$(wildcard $(FRAMEWORK_DEP_DIR)/*.d) GAME_DEP :=$(wildcard $(GAME_DEP_DIR)/*.d) $(PRG): $(OBJ) $(CXX) $^ -o $@ -ldl -lGLESv2 -lassimp -L/usr/local/lib -lGLU -lGL -lglfw3 -pthread -lGL -lGLEW -lfreetype -lX11 $(OBJ_DIR)/%.o: FrameWork/source/%.cpp $(CXX) -std=c++2a -I/usr/local/include/freetype2 -I/usr/local/include/glm -I/usr/include/libpng16 -I/usr/local/include -pthread -c -MMD -MP $< -o $@ -include $(FRAMEWORK_DEP) $(OBJ_DIR)/%.o: Game/source/%.cpp $(CXX) -std=c++2a -I/usr/local/include/freetype2 -I/usr/local/include/glm -I/usr/include/libpng16 -I/usr/local/include -pthread -c -MMD -MP $< -o $@ -include $(GAME_DEP) clean: rm -f ./$(OBJ_DIR)/*.o *.out ./$(OBJ_DIR)/*.d *.a $(PRG)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。