Al intentar instalar el som_pak-3.1-NAcMoS.tar.gzarchivo, he usado los siguientes comandos:
$ tar xvf som_pak-3.1-NAcMoS.tar.gz
$ cd som_pak-3.1
$ cp makefile.unix makefile
$ make
$ cd ..
$ ln -s som_pak-3.1 $NACMOS_HOME/som_pak
Pero al ejecutar el makecomando obtengo el siguiente error:
* Falta el separador (¿quiso decir TAB en lugar de 8 espacios?). Detener.
- ¿Alguien puede decirme la razón del error?
- ¿Hay algún paquete que deba incluir con esto?

Respuestas:
El error que estás encontrando:
Significa que
makefilecontiene espacios en lugar de Tab. Lamakeutilidad es notablemente exigente con el uso de en Spacelugar de Tab. Por lo tanto, es probable quemakefilecontenga Spaceal principio de las estrofas de reglas dentro del archivo.Ejemplo
Digamos que tengo los siguientes 3
Hola C world.c main.c :.carchivos:Digamos que tengo lo siguiente
Makefile:Ahora intentamos construir un objetivo
Cuando lo ejecuto contra el objetivo
helloworld:¿Parecer familiar?
Solucionando el problema
Puede solucionar esto cambiando los caracteres Spacesreales Tab. Solía
vimreparar mi archivo. Simplemente ábralo:Y luego ejecuta este comando dentro de:
NOTA:
^Ies un personaje especial. La escritura ^seguida por Ise interpretará de manera diferente en comparación con Ctrl+ V- Ctrl+ I.Esto sustituirá todas las líneas que comienzan con 1 o más Spacescon un real Tab.
Ahora cuando vuelvo a ejecutar mi
helloworldobjetivo:Referencias
fuente
Como sugirió la otra respuesta, los Makefiles necesitan caracteres de tabulación, no espacios. Tengo mi
.vimrcconjunto para reemplazar automáticamente todas las pestañas con espacios, así que tengo que configurar manualmente la configuración inversa en Makefiles individuales. Elvimcomando que uso es el siguiente:fuente
# vim: set noet:Nota: Las formas correctas de lidiar con este problema en particular es corregir el Makefile para que cada línea de acción de cada receta se sangra con un solo carácter de tabulación, y luego enviar un parche para los desarrolladores originales.
Este es un truco feo, que funciona con versiones recientes de GNU
make(si el problema es que el Makefile usa espacios en lugar de pestañas, de manera consistente):Esto establecerá la
makevariable especial GNU.RECIPEPREFIXen un solo espacio. Esta variable, desde GNUmake3.82 más o menos (2007), controla el carácter utilizado para prefijar las líneas de acción de las recetas. Si la variable está vacía (como lo está por defecto), se usan pestañas.Ejemplo,
Ejemplo, mostrando su uso con
>(configurando la variable dentro del Makefile en este caso):Ver también:
makemanual de GNU .fuente