質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

Q&A

解決済

1回答

2381閲覧

Makefileを書いてみたところ、No ruleと怒られる

pupperccino

総合スコア17

makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

0グッド

0クリップ

投稿2020/03/04 13:59

下記のようなMakefile1を改良して、hoge.cppだけでなく同一ディレクトリにあるfuga.cppもコンパイルできるようにしようとMakefile2を書いてみたところ、

make: *** No rule to make target 'fuga.o', needed by 'fuga'. Stop.

という警告とともにストップしました。hoge.cppはコンパイルできていたのですが、fuga.cppのコンパイルで失敗してしまったようです。
どのようにすればfuga.cppもコンパイルできるようになりますか?ご教示のほどをよろしくお願い致します。

Allの部分はこちらのサイトを参考にしました。
また、ROOTFLAGSなどは単にコンパイルに必要なオプションの部分です。

Makefile1

1TARGET1 = hoge 2 3SRCS1 = $(TARGET1).cpp 4OBJS1 = $(TARGET1).o 5 6ROOTCFLAGS = $(shell root-config --cflags) 7ROOTLIBS = $(shell root-config --libs) 8ROOTGLIBS = $(shell root-config --glibs) 9 10CPPFLAGS = $(ROOTCFLAGS) -Wall -fPIC 11CPPLIBS = $(ROOTLIBS) -lSpectrum 12CPP = g++ 13 14$(TARGET1): $(OBJS1) 15 $(CPP) $(CPPFLAGS) $(CPPLIBS) $(OBJS1) -o $@ 16 17.cpp.o: 18 $(CPP) $(CPPFLAGS) -c $< 19 20clean: 21 rm -rf $(TARGET1) 22

Makefile2

1TARGET1 = hoge 2TARGET2 = fuga 3 4SRCS1 = $(TARGET1).cpp 5OBJS1 = $(TARGET1).o 6SRCS2 = $(TARGET2).cpp 7OBJS2 = $(TARGET2).o 8 9ROOTCFLAGS = $(shell root-config --cflags) 10ROOTLIBS = $(shell root-config --libs) 11ROOTGLIBS = $(shell root-config --glibs) 12 13CPPFLAGS = $(ROOTCFLAGS) -Wall -fPIC 14CPPLIBS = $(ROOTLIBS) -lSpectrum 15CPP = g++ 16 17All: $(TARGET1) $(TARGET2) 18$(TARGET1): $(OBJS1) 19 $(CPP) $(CPPFLAGS) $(CPPLIBS) $(OBJS1) -o $@ 20$(TARGET2): $(OBJS2) 21 $(CPP) $(CPPFLAGS) $(CPPLIBS) $(OBJS2) -o $@ 22 23.cpp.o: 24 $(CPP) $(CPPFLAGS) -c $< 25 26clean: 27 rm -rf $(TARGET1) 28

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

fuga.cppが存在しないのでしょう。

投稿2020/03/04 14:26

otn

総合スコア84702

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pupperccino

2020/03/04 14:49

ありがとうございます。いつにまにか消してしまっていたようです。 お恥ずかしい限りです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問