提示コードですが以下のmakefileの####
の行で提示のエラーが発生するのですがこれは何が原因なのでしょうか?暗黙ルールと通常ルール
とはどういう意味でしょうか?参考サイトを参考に調べましたが暗黙のルール
にも沢山種類があるみたいで何が言いたいのかわかりません。
処理内容
libディレクトリにあるファイルから静的ライブラリを生成してそれを使ってプロジェクトのディレクトリをリンクするというmakefileです。
参考サイト
http://quruli.ivory.ne.jp/document/make_3.79.1/make-jp_9.html#Using-Implicit
Error
shigurechan@shigurechan-System-Product-Name:~/Program/test2$ make Makefile:24: *** 暗黙ルールと通常ルールが混ざりました: 推奨されない文法 make: *** lib/obj: ディレクトリです. 中止. shigurechan@shigurechan-System-Product-Name:~/Program/test2$
Makefile
makefile
1# ライブラリ 2LIB_DIR :=lib 3LIB_SRC_DIR :=lib/src 4LIB_OBJ_DIR :=lib/obj 5LIB_DEP_DIR :=lib/obj 6LIB_DEP :=$(wildcard $(LIB_DEP_DIR)/*.d) 7LIB_SRC :=$(wildcard $(LIB_SRC_DIR)/*.cpp) 8LIB_OBJ :=$(addprefix $(LIB_OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(LIB_SRC)))) $(wildcard $(LIB_OBJ_DIR)/*.o) 9LIB :=libconsole.a # ライブラリ名 10 11# プロジェクト 12SRC_DIR :=src 13OBJ_DIR :=obj 14DEP_DIR :=obj 15DEP :=$(wildcard $(DEP_DIR)/*.d) 16SRC :=$(wildcard $(SRC_DIR)/*.cpp) 17OBJ :=$(addprefix $(OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(SRC)))) 18LIB_PATH :=$(LIB_DIR)/$(LIB) # ライブラリパス 19PRG :=program 20 21 22# ライブラリ 23$(LIB_OBJ_DIR)/%.o: lib/src/%.cpp 24 $(CXX) -c -MMD -MP $< -o $@ ########################### ここでエラー 25-include $(LIB_DEP) 26 27$(LIB): $(LIB_OBJ) 28 ar rcs $@ $< 29 30 31 32# プロジェクト 33$(PRG): $(OBJ) 34 $(CXX) $^ -o $@ $(LIB_PATH) 35 36$(OBJ_DIR)/%.o: src/%.cpp 37 $(CXX) -c -MMD -MP $< -o $@ 38-include $(DEP) 39 40clean: 41 rm -f ./$(OBJ_DIR)/*.o *.out ./$(OBJ_DIR)/*.d $(PRG) 42

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。