Pregunta

Recibí este error mientras estaba (re) construyendo, usando la versión cygwin make.exe: 3.81.

Error : *** target pattern contains no `%'.
¿Fue útil?

Solución

Este error se debe a la presencia de un ": " . Por lo tanto, ya no es compatible con las rutas de Windows. Debe descargar la versión 3.80 y reemplazar el make.exe en el directorio \ bin .

Al parecer, también necesita cygintl12.dll .

Otros consejos

  • deshacer para hacer 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
  • instale libintl2 desde la configuración de cygwin para el cygintl-2.dll

Recibí el mismo error al intentar construir un proyecto en Linux u OSX, que se construyó previamente en una máquina con Windows y tenía algunos archivos .o.d en la carpeta de salida.

Una vez que eliminé manualmente los archivos .o.d , el problema se resolvió. Al parecer, el " Limpio " el comando de mi IDE (CodeLite en este caso) no eliminaba los archivos .o.d .

Probablemente debido a la presencia de dos puntos después de una letra de unidad. Por ejemplo considere

build : $(NativeHeaders)/*

Si

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

entonces todo está bien, pero

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

da como resultado el error que obtienes.

Estaba recibiendo este error porque no tenía un carácter Tab (\ t) al principio de mis comandos. Tenía expandtab en mi conjunto vim, así que estaba reemplazando un carácter de tabulación con 4 espacios. Cuando lo apagué y cambié los espacios a una pestaña, se solucionó

Tuve el patrón de destino no contiene el error '%' al compilar con el NDK de Android usando cygwin.

Encontré útil el siguiente enlace:

  

Errores generados por Make

     
      
  • ‘patrón de objetivo faltante. Detente.
  •   
  • ‘patrones de destino múltiples. Detente.
  •   
  • ‘patrón de destino no contiene`% '. Detente.
  •   
  • ‘reglas de patrones estáticos e implícitos mixtos. Detente.
  •   
     

Estos se generan para reglas de patrones estáticos mal formados. El primero significa que no hay un patrón en la sección objetivo de la regla; el segundo significa que hay múltiples patrones en la sección de destino; el tercero significa que el objetivo no contiene un carácter de patrón (%); y el cuarto significa que las tres partes de la regla de patrón estático contienen caracteres de patrón (%), solo las primeras dos partes deberían. Si ve estos errores y no está intentando crear una regla de patrón estática, verifique el valor de cualquier variable en sus listas de requisitos y requisitos previos para asegurarse de que no contengan dos puntos. Consulte Sintaxis de las reglas de patrones estáticos .

Y, por lo tanto, mi solución incluyó cambiar las variables de mi sistema de formato Windows a formato Unix, por lo que:

  • En lugar de C: \ Android \ android-ndk-r10c , usé / cygdrive / c / Android / android-ndk-r10c para la ruta NDK.

De forma similar, cambié la ruta del proyecto NDK a / cygdrive / c / Android / project / src / main / jni .

En mi caso, estaba usando CMake bajo Cygwin cuando recibí este error. Resultó que la versión de Windows de CMake fue ejecutada. Posteriormente, se usaron las rutas de Windows en el archivo make. Instalé la versión de Cygwin de CMake a través del programa de instalación y la hice funcionar.

Tuve este problema en Linux cuando el directorio de compilación contenía un ": " causado por hacer un pago mercurial que creó un directorio llamado " servidor: puerto " ;.

Tuve que cambiar lo siguiente en mi archivo make para que sea compatible con Make_381:
antes:
ARDUINO_BASE_DIR = C: \ programs / arduino

ahora:
ARDUINO_BASE_DIR = \\ programas / arduino

Intente esto si está ejecutando Eclipse C / C ++ y hace referencia a los archivos de Cygwin en Windows, asegúrese de que c: / cygwin / bin o c: / cygwin64 / bin aparezca después de las herramientas de compilación que prefiera en su entorno de Windows Path.

Ejemplo:     Ruta =; C: \ yagarto \ bin; C: \ yagarto-tools \ bin; C: \ cygwin64 \ bin;

Después de realizar los cambios, salga de Eclipse y reinicie para que surta efecto (simplemente reiniciar Eclipse sin salir no solucionará el problema.

En mi proyecto, la carpeta obj probablemente estaba dañada y estaba recibiendo este error. Carpeta obj eliminada manualmente. Entonces ndk-build completó bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top