1. ホーム
  2. android

を作ってください。*** makeするルールがない エラーの原因、分析、解決策

2022-02-09 03:25:28

Tornado でコンパイル中に、コンパイラが報告する以下のエラーに遭遇しました。 

を作成します。*** No rule to make target `e:/Tornado2.2_Project/FTTB/utils/h/nos/nos_cli.h', neede
onu07_snmp_cli.o'が作成しました。  停止してください。

エラーです。makefile のファイル依存関係が間違っていて、ヘッダーファイルが見つかりません。

回避策 当該モジュールをコンパイルしたmakefileファイルを開き、.oファイルの依存関係、.hファイルのパスを確認し、エラーをチェックし、修正してください。

解析する。プロジェクトが置かれているディレクトリが変更されたために起こることがあります。例えば、CドライブにあったプロジェクトがDドライブに移動し、makefile内の.hファイルへのパスが変更されていない場合などです。




linphoneのコンパイル時に上記のような問題が発生しました。上記の説明の後、問題は解決しました。具体的な解決方法は  

例えば、私のエラーは次のように報告されました。
make[1]: *** ターゲット `jni/...' を作成するためのルールがありません。//submodules/linphone/oRTP/build/android/...です。/... //src/str_utils.c', `obj/local/x86/objs/ortp/src/str_utils.o' で必要です。  停止してください。

この問題を分析すると、確かにディレクトリ名を変更したことが原因です。まず、問題のプロジェクトの下にあるstr_utilsをグローバルに検索し、それぞれのファイルを開いてみてください。エラーが発生したファイル内のパスを見て、適切な変更を加えてください。私が困っているファイル名は、str_utils.o.d.です。

<スパン 最後に、上記の問題の根本的な原因は、プロジェクトで生成された.o.dファイルが、パスを変更したりフォルダ名を変更した後に再度コンパイルする際に再コンパイルされず、問題を引き起こしていることだとわかりました。根本的な解決方法は、コンパイルしたobjフォルダを削除することです。その後、再度リコンパイルすればよい。