gnu make、microsoft nmake、および posix 標準 make はどのように似ていますか?
明らかに「どのOS?」「どのコンパイラー?」といったものがあります。と「どのリンカ?」ですが、メイクファイル自体の構文、セマンティクス、およびコマンド ライン オプションについて具体的に言及しています。
gnu make のマニュアルに基づいて makefile を作成する場合、注意する必要がある最も重要な移植性の問題は何ですか?
gnu make、microsoft nmake、および posix 標準 make はどのように似ていますか?
明らかに「どのOS?」「どのコンパイラー?」といったものがあります。と「どのリンカ?」ですが、メイクファイル自体の構文、セマンティクス、およびコマンド ライン オプションについて具体的に言及しています。
gnu make のマニュアルに基づいて makefile を作成する場合、注意する必要がある最も重要な移植性の問題は何ですか?
GNU Make と POSIX Make は共通のコアを共有しているため、GNU Make は POSIX Make 用の Makefile を理解し、それらを同じように解釈します (例外はほとんどありません)。ただし、多くの GNU Makefile は、GNU Make でのみ使用可能な機能を使用しています。これは意図的で意識的な場合もあります。そうでない場合もあります(「そうでない場合もある」ことが問題です)。私は Microsoft の nmake にはあまり詳しくありません。私は、それが POSIX Make セマンティクスの中核に近づく可能性が高いと信じていますが、独自の異なる拡張セットを持つことになります。
一般的に言えば、autoconf のようなプログラムが生成するものは、移植可能な Makefile に近いものです。
GNU Make を使用する際に注意すべき主な点は、ファイル名 (マクロ) を有用な値にマッピングするためのすべての拡張関数表記です。それらは間違いなく便利ですが、移植性を損なうものでもあります。
接尾辞規則の '%.x' 表記はPOSIX では定義されていません- これらは共通の拡張子として認識されます:
'%'
文字を含むターゲットの解釈'"'
は実装定義です。