[解決済み] 異なるディレクトリにソースファイルを持つMakefile
2022-04-28 16:32:25
質問
私は、ディレクトリ構造が以下のようなプロジェクトを持っています。
$projectroot
|
+---------------+----------------+
| | |
part1/ part2/ part3/
| | |
+------+-----+ +---+----+ +---+-----+
| | | | | | |
data/ src/ inc/ src/ inc/ src/ inc/
part/src にある c/c++ ソースファイルをコンパイル・リンクできる makefile はどのように書けばいいのでしょうか?
次のようなことは可能ですか? -I$projectroot/part1/src -I$projectroot/part1/inc -I$projectroot/part2/src ...
もしそれでうまくいくのであれば、もっと簡単な方法はないでしょうか。 私は、対応するパート?フォルダーにそれぞれmakefileがあるプロジェクトを見たことがあります。 [この投稿では、bashの構文のようにクエスチョンマークを使いました]。
どのように解決するのですか?
従来の方法としては
Makefile
を、それぞれのサブディレクトリ (
part1
,
part2
など)を独立して構築することができます。さらに
Makefile
を、すべてをビルドするプロジェクトのルートディレクトリに置きます。 ルートディレクトリには、"root"
Makefile
は次のような感じになります。
all:
+$(MAKE) -C part1
+$(MAKE) -C part2
+$(MAKE) -C part3
makeターゲットの各行は独自のシェルで実行されるため、ディレクトリツリーをさかのぼったり、他のディレクトリに移動する心配はありません。
を見てみることをお勧めします。 GNU make マニュアル 5.7 節 とても参考になります。
関連
-
deepin20にフォントを追加する方法は?deepin20にフォントをインストールする方法は?
-
Vmware 16仮想マシンを開けない場合、ファイルをローカルにコピーする方法は?
-
deepin20の不正確な時刻表示を調整する方法は?Deepinの時刻補正方法
-
[解決済み] 標準エラー出力を /dev/null にリダイレクトする。
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法
-
[解決済み] ls を使用してディレクトリとその合計サイズを一覧表示する
-
[解決済み] grep -R からディレクトリを除外するにはどうすればよいですか?
-
[解決済み] ディレクトリをTarするが,完全な絶対パスはアーカイブに保存しない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Linuxでファイルパーミッションを与えるには?Linuxでファイルに実行可能なパーミッションを追加するためのヒント
-
Manjaro linuxでマウスの速度を設定する方法は?Manjaroのマウスのカーソル速度を設定する方法に関するヒント
-
Linuxのデスクトップの背景を画像で引き伸ばし表示にする方法とは?
-
Centos7のインストールと展開無料のconfluence wikiの(知識ベース)詳細な操作手順
-
Linux 5.10.10 正式版リリース:NULLポインタの不具合修正など。
-
Linux Mintシステムでプログラムをアンインストールするには? Linux で不要なアプリケーションをアンインストールするためのヒント
-
makeの低レベルエラー:セパレータストップがない
-
[解決済み] IOCTL Linuxデバイスドライバ [終了しました]
-
[解決済み] 特定のファイル/フォルダを除外してディレクトリをtarするシェルコマンド
-
[解決済み] Linuxのディレクトリ内のファイルを再帰的にカウントする