提示コードですが以前の参考サイト部でmakeを実行すると普通にコンパイルが通りアプリを実行するとその問題のコードに達するとエラー提示画像のエラーが発生して。makeをクリーンしてmakeすると以下ようなエラーが出ますつまりmakefileが正しく記述されていないことが原因なのですがこれは何が原因なのでしょうか?
DEPファイルの何が悪いのでしょうか?
以前の質問 https://teratail.com/questions/359488
$ make g++ -c -MMD -MP source/Edit.cpp -o obj/Edit.o In file included from /usr/include/c++/9/memory:80, from source/../header/Edit.hpp:5, from source/Edit.cpp:5: /usr/include/c++/9/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = Screen]’: /usr/include/c++/9/bits/unique_ptr.h:292:17: required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = Screen; _Dp = std::default_delete<Screen>]’ source/Edit.cpp:9:22: required from here /usr/include/c++/9/bits/unique_ptr.h:79:16: error: invalid application of ‘sizeof’ to incomplete type ‘Screen’ 79 | static_assert(sizeof(_Tp)>0, | ^~~~~~~~~~~ make: *** [Makefile:11: obj/Edit.o] エラー 1
makefile
1PRG :=AAEditor 2SRCDIR :=source 3OUTDIR :=obj 4DEP :=obj/%.d 5SRC :=$(wildcard $(SRCDIR)/*.cpp) 6OBJ :=$(addprefix $(OUTDIR)/,$(patsubst %.cpp,%.o,$(notdir $(SRC)))) 7$(PRG): $(OBJ) 8 $(CXX) $^ -l ncurses -o $@ 9 10$(OUTDIR)/%.o: source/%.cpp 11 $(CXX) -c -MMD -MP $^ -o $@ 12-include $(DEP) 13 14clean: 15 rm -f ./obj/*.o *.out ./obj/*.d *.a $(PRG) 16
回答2件
あなたの回答
tips
プレビュー