提示コードのコマンドプロンプト部ですがライブラリをリンクすると大量の未定義の参照というエラーが出ます。なぜ未定義の参照というエラーエラー出るのでしょうか?makeifleはlibFramework.aを生成してそれをリンクする二つのプロジェクトあります。またmake clean コマンドを実行すると下記のエラーになります。これは何をしたのでしょうか?
#####試したこと
libFrameWork.aを生成するコード以外を全てコメントアウトして無理やり生成してリンクしましたが同じエラーがでます。
参考サイト: https://www.yunabe.jp/docs/static_library.html
環境
OS: windows10
コンパイラ: tdm64-gcc-10.3.0-2
利用ライブラリ
glfw
glew
opengl
glm
stb
freetype
assimp
現状
C:\TDM-GCC-64\x86_64-w64-mingw32ディレクトリ内のinclude , lib ディレクトリの該当のライブラリをコピー
make FrameWork.a
C:\Users\Matsuzawa ken\Desktop\TopViewGame>make libFrameWork.a make: `libFrameWork.a' is up to date.
コマンドプロンプト
C:\Users\yw325\Desktop\TopViewGame>make g++ Game/obj/Control.o Game/obj/Cube.o Game/obj/Entry.o Game/obj/Game.o Game/obj/Ground.o Game/obj/LightCube.o Game/obj/Main.o Game/obj/Player.o Game/obj/Scene.o -o program.exe -L -l FrameWork.lib -lglfw3 -lfreetype -lglew32 Warning: corrupt .drectve at end of def file Warning: corrupt .drectve at end of def file Warning: corrupt .drectve at end of def file C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: i386 architecture of input file `Game/obj/Scene.o' is incompatible with i386:x86-64 output C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: Game/obj/Cube.o:Cube.cpp:(.text+0x43): undefined reference to `FrameWork::Shader::Shader()' C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: Game/obj/Cube.o:Cube.cpp:(.text+0x55): undefined reference to `FrameWork::Shader::Shader()'
make clean
C:\Users\yw325\Desktop\TopViewGame>make clean rm -f ./FrameWork/obj/*.o *.out ./FrameWork/obj/*.d *.a libFrameWork.a process_begin: CreateProcess(NULL, rm -f ./FrameWork/obj/*.o *.out ./FrameWork/obj/*.d *.a libFrameWork.a, ...) failed. make (e=2): 指定されたファイルが見つかりません。 make: *** [clean] エラー 2 C:\Users\yw325\Desktop\TopViewGame>
-v
C:\Users\yw325\Desktop\TopViewGame>make g++ -v Game/obj/Control.o Game/obj/Cube.o Game/obj/Entry.o Game/obj/Game.o Game/obj/Ground.o Game/obj/LightCube.o Game/obj/Main.o Game/obj/Player.o Game/obj/Scene.o -o program.exe -L -lFrameWork -lglew32 -lglfw3 -lfreetype -lopengl32 gンン spec gpオト「ワキB COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=C:/TDM-GCC-64/bin/../libexec/gcc/x86_64-w64-mingw32/10.3.0/lto-wrapper.exe ^[Qbg: x86_64-w64-mingw32 configure ン: ../../../src/gcc-git-10.3.0/configure --build=x86_64-w64-mingw32 --enable-targets=all --enable-languages=ada,c,c++,fortran,jit,lto,objc,obj-c++ --enable-libgomp --enable-lto --enable-graphite --enable-cxx-flags=-DWINPTHREAD_STATIC --disable-build-with-cxx --disable-build-poststage1-with-cxx --enable-libstdcxx-debug --enable-threads=posix --enable-version-specific-runtime-libs --enable-fully-dynamic-string --enable-libstdcxx-filesystem-ts=yes --disable-libstdcxx-pch --enable-libstdcxx-threads --enable-libstdcxx-time=yes --enable-mingw-wildcard --with-gnu-ld --disable-werror --enable-nls --disable-win32-registry --enable-large-address-aware --disable-rpath --disable-symvers --prefix=/mingw64tdm --with-local-prefix=/mingw64tdm --with-pkgversion=tdm64-1 --with-bugurl=https://github.com/jmeubank/tdm-gcc/issues Xbhf: posix T|[gウト「 LTO ウkASY: zlib zstd gcc o[W 10.3.0 (tdm64-1) COMPILER_PATH=C:/TDM-GCC-64/bin/../libexec/gcc/x86_64-w64-mingw32/10.3.0/;C:/TDM-GCC-64/bin/../libexec/gcc/;C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/1
#####中身
C:\Users\yw325\Desktop\TopViewGame>ar t libFrameWork.a Actor.o Camera.o Help.o Init.o Model.o Render.o Resource.o Shader.o Shape.o Simple.o Sprite.o Text.o Transform.o Window.o C:\Users\yw325\Desktop\TopViewGame>
Makefile
PRG :=program.exe STATIC_LIB :=libFrameWork.a 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 -lFrameWork -lglew32 -lglfw3 -lfreetype -lopengl32 $(STATIC_LIB): $(FRAMEWORK_OBJ) ar rc $@ $^ ranlib $@ $(FRAMEWORK_OBJ_DIR)/%.o: FrameWork/source/%.cpp $(CXX) -c -MMD -MP $< -o $@ -include $(FRAMEWORK_DEP) $(GAME_OBJ_DIR)/%.o: Game/source/%.cpp $(CXX) -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)