1. ホーム
  2. makefile

[解決済み] タブ文字がない有効なMakefileは作れますか?

2022-07-29 06:14:19

質問

target: dependencies
    command1
    command2

私のシステム(Mac OS X)では make の前にタブ文字があることが必要なようです。 command の行の前にタブ文字があることを要求しているようで、さもなければ構文エラーを投げます。

私はエディタを all-spaces-all-the-time に設定しているので、これは Makefile を作成または編集するときの悩みの種です。

タブ文字なしで有効な Makefile を作ることはできますか?

どのように解決するのですか?

これは、構文の奇妙さ/要件である make の構文の奇妙さ/要件であり、Mac OS X とは何の関係もありません。 残念ながら、もしあなたが make .

Edit : GNU Make はカスタムレシピの接頭辞をサポートするようになりました。 参照 この回答 .

のこの点を嫌っているのはあなたが初めてではありません。 make . 引用すると Unix嫌いの人のためのハンドブック :

<ブロッククオート

Dennis の Makefile の問題は、コメント行を追加したときに、誤って 2 行目の冒頭のタブ文字の前にスペースを挿入してしまったことです。タブ文字は、Makefile の構文上、非常に重要な部分です。すべてのコマンドライン(この例では cc で始まるライン)はタブで始まらなければなりません。彼が変更を加えた後、2 行目はそうならなかったので、このようなエラーが発生しました。

"だから何?" とあなたは尋ねます。"何が悪い?" と。

それ自体には何も問題はありません。ただ、Unix で他のプログラミング ツールがどのように動作するかを考えると、構文の一部としてタブを使用することは、「グリーン ベレー」のパンジー スティックのトラップの 1 つに似ています:カンザスの貧しい子供はジョン ウェインの前を歩いていて、トリップ ワイヤに気づきません。結局のところ、カンザスのトウモロコシ畑には気をつけるべき仕掛け線はないのです。ワム!