0

メイクファイル内で次のコマンドを実行しています。file2 を開く必要があるときにエラーが発生します。つまり、選択したスイッチに基づいて file1.c に何らかの変更がある場合、make はまさにこの行で失敗します。

unifdef -DSW1 -DSW2 -USW3 file1.c >file2.c

unifdef は、部分的な前処理を行うユーティリティです。file1.c が unifdef に入力され、file2.c が出力されます。私のメイクファイルは単純明快で、file1.c にも file2.c にも依存していません。Makefile の依存関係は正常に機能しています。

ありがとう、

4

1 に答える 1

0

デフォルトでは、 unifdef は、入力ファイルに変更を加えると、ステータス コード 1 で終了します。Make はこれを失敗として扱います。コマンドの前に - を付けることで、終了ステータスを無視するよう make に指示できます。

バージョン 2.7 の unifdef (2013 年 3 月にリリース) には、終了ステータス ロジックを制御する -x オプションがあるため、make との連携がよりうまくいきます。unifdef が実際に変更を行ったことを make が確認できるように、-x1 を使用することをお勧めします。http://dotat.at/prog/unifdef/を参照

于 2013-04-11T10:58:47.890 に答える