#define コマンドで有効になっているデバッガー機能を無効にする必要がある組み込みシステム (RTXC) で作業しています。ただし、#define を undefine に変更すると、コンパイルは正常に終了しますが、リンカーを実行すると、デバッグ コードに属するシンボルが存在しないというエラーが発生します (これは、デバッガー変数によって処理されるべきでした)。定義されています)。プリプロセッサ変数が定義されていないか未定義のままであることを Make が保証する方法はありますか?
4249 次
2 に答える
1
あなたの質問に対する答えはノーです。Make は、たとえばコード内の #define 式によって変数が定義されるのを完全に防ぐことはできません。
あなたはとらえどころのない問題を抱えているようです。Makefile のバグ、ディレクティブのスペルミス、不適切なマクロ (トートロジーをご容赦ください)、または些細なことである可能性があります。森を燃やすことをお勧めします。問題がなくなるまですべてを切り取ってから、隠れていた場所を確認してください。HelloWorld にアクセスしても問題が解決しない場合は、お知らせください。
于 2009-09-24T19:41:18.777 に答える
0
いいえ。コードのバグを修正する必要があります。
具体的には、#ifdef の外でデバッグ側を参照しているものがあります。Makeはそこであなたを助けることができません。
もう 1 つの可能性は、以前のビルドから .o または何かが残っていることです。ビルド ツリーをクリーンアップしてみてください。
于 2009-09-24T18:04:22.123 に答える