Cygwin makeエラー:***ターゲットパターンに「%」が含まれていません

StackOverflow https://stackoverflow.com/questions/601516

  •  03-07-2019
  •  | 
  •  

質問

cygwin make.exeバージョン:3.81を使用して(再)ビルド中にこのエラーが発生しました。

Error : *** target pattern contains no `%'.
役に立ちましたか?

解決

このエラーは、":" の存在が原因です。したがって、Windowsパスはサポートされなくなりました。 バージョン3.80をダウンロードし、 \ bin ディレクトリの make.exe を置き換える必要があります。

明らかに cygintl12.dll も必要です。

他のヒント

  • ロールバックして3.80にします( Geant4

    • cd / usr / bin
    • mv make.exe make_381.exe
    • wget http://geant4.cern.ch/support/extras/cygwin/make.exe
    • chmod + x make.exe
  • 必要な cygintl-2.dll

  • のcygwinセットアップから libintl2 をインストールします

LinuxまたはOSXでプロジェクトをビルドしようとしたときに同じエラーが発生しました。以前はWindowsマシンでビルドされていて、出力フォルダーに .o.d ファイルがいくつかありました。

.o.d ファイルを手動で削除すると、問題は解決しました。どうやら「クリーン」 IDE(この場合はCodeLite)のコマンドは .o.d ファイルを削除していませんでした。

ほとんどの場合、ドライブ文字に続くコロンの存在が原因です。たとえば、考慮

build : $(NativeHeaders)/*

If

NativeHeaders=../../../cpp/generated

すべては順調ですが、

NativeHeaders=C:/dev/folder/cpp/generated

エラーが発生します。

コマンドの先頭にタブ(\ t)文字がなかったため、このエラーが発生していました。 vimセットにexpandtabがあったため、タブ文字を4つのスペースに置き換えました。これをオフにしてスペースをタブに変更すると、修正されました

cygwinを使用してAndroid NDKでビルドしているときに、ターゲットパターンに「%」エラーが含まれていませんでした。

次のリンクが役に立ちました:

  

Makeによって生成されるエラー

     
      
  • ‘ターゲットパターンがありません。停止します。’
  •   
  • ‘複数のターゲットパターン。停止します。’
  •   
  • ‘ターゲットパターンに「%」が含まれていません。停止します。’
  •   
  • ‘暗黙的および静的なパターンルールの混合。停止します。’
  •   
     

これらは、不正な形式の静的パターンルールに対して生成されます。最初は、ルールのターゲットセクションにパターンがないことを意味します。 2番目は、ターゲットセクションに複数のパターンがあることを意味します。 3番目は、ターゲットにパターン文字(%)が含まれていないことを意味します。 4番目は、静的パターンルールの3つの部分すべてにパターン文字(%)が含まれていることを意味します。最初の2つの部分のみが含まれている必要があります。これらのエラーが表示され、静的パターンルールを作成しようとしていない場合は、ターゲットと前提条件リストの変数の値をチェックして、コロンが含まれていないことを確認してください。 静的パターンルールの構文を参照してください。

そして、私のソリューションには、システム変数をWindows形式からUnix形式に変更することが含まれていました。

  • C:\ Android \ android-ndk-r10c の代わりに、NDKパスに / cygdrive / c / Android / android-ndk-r10c を使用しました。

同様に、NDKプロジェクトパスを / cygdrive / c / Android / project / src / main / jni に変更しました。

この場合、このエラーが発生したときにCygwinでCMakeを使用していました。 CMakeのWindowsバージョンが実行されたことが判明しました。その後、Windowsパスがmakeファイルで使用されました。 CygwinのバージョンのCMakeをセットアッププログラムからインストールし、動作させました。

Linuxでビルドディレクトリに":"が含まれていると、この問題が発生しました。 " server:port"という名前のディレクトリを作成した水銀チェックアウトを行ったことが原因です。

Make_381との互換性を保つために、makeファイルで次の項目を変更する必要がありました。
before:
ARDUINO_BASE_DIR = C:\ programs / arduino

now:
ARDUINO_BASE_DIR = \\ programs / arduino

Eclipse C / C ++を実行していて、WindowsでCygwinからファイルを参照している場合は、Windowsパス環境でc:/ cygwin / binまたはc:/ cygwin64 / binが優先コンパイラツールの後に来るようにしてください。 / p>

例:     パス=; C:\ yagarto \ bin; C:\ yagarto-tools \ bin; C:\ cygwin64 \ bin;

変更を行った後、Eclipseを終了し、再起動して有効にします(終了せずにEclipseを再起動しても問題は解決しません。

私のプロジェクトでは、おそらくobjフォルダーが破損しており、このエラーが発生していました。手動で削除されたobjフォルダー。その後、ndk-buildは正常に完了しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top