Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

331
Visualizações
la receta para el objetivo 'todos' falló en Ubuntu 15.10 de 64 bits

1) El programa funciona bien si escribo cada comando en la Terminal con gcc -o file1 file1.c && gcc file2.c -lm -o file2 , y luego ./file1 someArgs ./file2 someArgs

2) También funciona si escribo en Terminal: make rst y make res

3) No funciona escribiendo make en Terminal

Makefile:

 all: check default: check clean: rm -rf file1 file2 rst: gcc -o file1 file1.c && gcc file2.c -lm -o file2 res: ./file1 someArgs ./file2 someArgs check: make clean make rst make res

También probé:

 all: check default: check clean: rm -rf file1 file2 rst: gcc -o file1 file1.c && gcc file2.c -lm -o file2 res: ./file1 someArgs ./file2 someArgs check: clean rst res

Y algunas otras combinaciones con o sin make . Todo el mismo error:

 make: check: Command not found Makefile:2: recipe for target 'all' failed make: *** [all] Error 127
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Parece que tiene cierta confusión entre los requisitos previos de una regla de creación y su receta. Los requisitos previos van en la misma línea que el nombre del objetivo; la receta va en la siguiente línea o líneas con tabulación. Así, por ejemplo, esta regla...

 all: check

... dice que el objetivo 'todo' no tiene requisitos previos (por lo que siempre se considera desactualizado), y que la receta para construirlo es ejecutar una check de comando . Lo que parece que realmente quiere es construir el objetivo llamado 'verificar', lo que puede hacer que suceda haciendo que 'verificar' sea un requisito previo de 'todos':

 all: check

En términos más generales, parece que se está acercando al archivo MAKE como si fuera un programa con múltiples puntos de entrada, pero se ve mucho mejor como un conjunto de reglas make puede usar Make para construir cosas. Por lo tanto, es convencional y deseable que las reglas que realmente crean un archivo especifiquen el archivo creado como destino. Además, para usar todo el poder de make , debe expresar los requisitos previos adecuados para esas y otras reglas. Por ejemplo:

 ./file1: file1.c gcc -o file1 file1.c ./file2: file2.c gcc file2.c -lm -o file2 res: ./file1 ./file2 ./file1 someArgs ./file2 someArgs

Si lo hace correctamente, entonces no necesita trucos como eliminar y reconstruir los programas cada vez: make descubrirá si están desactualizados y los reconstruirá cuando sea necesario.

over 4 years ago · Santiago Trujillo Relatório

0

El primer objetivo all tratando de ejecutar un comando llamado check (y también lo es el objetivo default ). Creo que desea que el comando make se comporte igual que el comando make check y que realice las acciones del objetivo llamado check en el Makefile. En ese caso, agréguelo como una dependencia como esta:

 all: check default: check clean: rm -rf file1 file2 rst: gcc -o file1 file1.c && gcc file2.c -lm -o file2 res: ./file1 someArgs ./file2 someArgs check: make clean make rst make res
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda