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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

2回答

2140閲覧

複数のディレクトリに存在する子makefileを実行する際のエラー

nanshime_2621

総合スコア32

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2018/12/19 01:56

カレントのディレクトリが複数のディレクトリを持ち、それぞれのディレクトリに子makefileがおかれている状態です。カレントディレクトリに親makefileを置き、子makefileを呼び出すしくみとなっています。
カレントディレクトリに存在する親makefileを実行しますが、1つ目のディレクトリの子makefileを呼び出して実行した後に以下のように表示され(エラーとは明記されません)、次のディレクトリの子makefileに移行してくれません。

make[1]:ディレクトリ'xx/xx/xx'から出ます

実行している親makefileの中身は以下となります。

all :=./xx/xx.a ./yy/yy.a
./xx/xx.a:
$(MAKE) -C ./xx
./yy/yy.a:
$(MAKE) -C ./yy

ご存じの方がいらっしゃいましたらご教授いただければ幸いです。よろしくお願いいたします。

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

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

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

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

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

yoorwm

2018/12/19 02:01

makeファイルはインデントにも意味があったはずなので、```で囲うようにしてコードがそのまま読めるように編集してみてください。
guest

回答2

0

ベストアンサー

all := ...と書くと、all という変数を用意することになってしまいます。
all というルールを作るときの書き方は all: ... です。

つまり、以下のように書くと意図したとおりに動くはずです。

Makefile

1all: ./xx/xx.a ./yy/yy.a 2 3./xx/xx.a: 4 $(MAKE) -C ./xx 5 6./yy/yy.a: 7 $(MAKE) -C ./yy

投稿2018/12/19 02:14

kzm4269

総合スコア184

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

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

nanshime_2621

2018/12/19 04:12

ありがとうございます! うまく動きました。不慣れなため長く悩んでしまったので、大変、大変助かりました。 本当にありがとうございます。
guest

0

all の指定は、:= ではなく、: では?

all :./xx/xx.a ./yy/yy.a

投稿2018/12/19 02:04

ssasaki

総合スコア1167

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

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

nanshime_2621

2018/12/19 04:12

いちはやく回答をいただき、ありがとうございます! 結構長い時間悩んでいたので、すぐ解決でき、本当に本当に助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問