Cygwin makeエラー:***ターゲットパターンに「%」が含まれていません
質問
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でビルドしているときに、ターゲットパターンに「%」
エラーが含まれていませんでした。
次のリンクが役に立ちました:
- ‘ターゲットパターンがありません。停止します。’
- ‘複数のターゲットパターン。停止します。’
- ‘ターゲットパターンに「%」が含まれていません。停止します。’
- ‘暗黙的および静的なパターンルールの混合。停止します。’
これらは、不正な形式の静的パターンルールに対して生成されます。最初は、ルールのターゲットセクションにパターンがないことを意味します。 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は正常に完了しました。