提示コードですがmakeを実行すると以下のエラーが出ますこれはなぜでしょうか?参考サイトを参考にライブラリの順序を確認しまたが正しいです。
adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status
とはどういう意味なのでしょうか?
試したこと
参考サイトを参考にライブラリの順序を確認
参考サイト:https://askubuntu.com/questions/1098073/g-fails-with-an-undefined-reference-to-symbol-dlcloseglibc-2-2-5-even-with
参考サイト:https://discourse.panda3d.org/t/solved-undefined-ref-pthread-getspecific-glibc-2/15283/2
参考サイト:https://stackoverflow.com/questions/45135/why-does-the-order-in-which-libraries-are-linked-sometimes-cause-errors-in-gcc
$ make g++ obj/Ellipse.o obj/Line.o obj/Transform_2D.o obj/Circle.o obj/Rectangle.o obj/Triangle.o obj/Window.o obj/Camera.o obj/Main.o obj/Init.o obj/Resource.o obj/Text.o obj/Shader.o obj/Help.o obj/Point.o obj/Render.o obj/FrameWork.o obj/Simple_Draw.o -o GL -lGL -lGLEW -lglfw3 -L/usr/local/lib -lfreetype /usr/bin/ld: /usr/local/lib/libglfw3.a(posix_thread.c.o): undefined reference to symbol 'pthread_getspecific@@GLIBC_2.2.5' /usr/bin/ld: /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make: *** [Makefile:14: GL] エラー 1
PRG :=GL SRC_DIR :=source OBJ_DIR :=obj DEP_DIR :=obj DEP :=$(wildcard $(DEP_DIR)/*.d) SRC :=$(wildcard $(SRC_DIR)/*.cpp) OBJ :=$(addprefix $(OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(SRC)))) LDFLAGS :=`pkg-config --libs=opengl glew glfw3 freetype2` $(PRG): $(OBJ) #$(CXX) $^ -l ncurses -o $@ $(CXX) $^ -o $@ -lGL -lGLEW -lglfw3 -L/usr/local/lib -lfreetype $(OBJ_DIR)/%.o: source/%.cpp #$(CXX) -std=c++2a -I/usr/local/include/freetype2 -I/usr/include/libpng16 -c -MMD -MP $< -o $@ $(CXX) -std=c++2a -c -MMD -MP $< -o $@ -include $(DEP) clean: rm -f ./$(OBJ_DIR)/*.o *.out ./$(OBJ_DIR)/*.d *.a $(PRG)
あなたの回答
tips
プレビュー