Makefile Erreur : Commande introuvable - lors de la création d'une bibliothèque partagée

J'ai 4 .c fichiers hello.c,here.c,bye.c et main.c.
Un fichier d'en-tête mylib.h

Le contenu sont comme suit

bonjour.c

#include<stdio.h>

void hello()
{
    printf("Hello!\n");
}

ici.c

#include<stdio.h>

void here()
{
     printf("I am here \n");
}

bye.c

#include<stdio.h>

void bye()
{
    printf("Bye,Bye");
}

principal.c

#include<stdio.h>
#include "mylib.h"

int main()
{ 

  hello();
  here();
  bye();
  return 1;
}

mylib.h

#ifndef _mylib_
#define _mylib_

void hello();
void here();
void bye();

#endif

Le makefile pour la création d'une lib statique est :
Makefile

#Which Compiler
CC = gcc

#Compiler Flags
CFLAGS = - Wall -c -fPIC

DYNLINKFLAGS = -shared -W1,-soname,$@.0

PROG = main

PROG_OBJS = main.c

LIB = mylib

LIB_FILES = libmylib.so

LIB_MINOR = $(LIB_FILES).0.1

LIB_RELEASE = $(LIB_MINOR).0

LIB_OBJS = hello.o here.o bye.o

PATH = /home/srinivasa/cspp51081/labs/srinivasa.lab2.1

all:    $(LIB_FILES) $(PROG)

#Create Lib with this file
$(LIB_FILES):   $(LIB_OBJS)
            $(CC) $(DYNLINKFLAGS) $^
            ln -sf $(LIB_RELEASE) $(LIB_MINOR)
            ln -sf $(LIB_MINOR) $@
            ln -sf $@ $@.0

#Compiling main program and link with shared library
$(PROG):        $(PROG_OBJS)
            $(CC) -o $(PROG) $(PORG_OBJS) -l$(LIB) -L$(PATH)

main.o:         main.c
hello.o:        hello.c
here.o:         here.c
bye.o:          bye.c

#clean files
clean:
            rm -rf $(LIB_OBJS) $(LIB_FILES) $(LIB_RELEASE) $(LIB_MINOR) libmylib.so.0

Problème: Lorsque j'exécute la commande

make -f Makefile all 

J'obtiens l'erreur:

gcc -Wall-fPIC-c -o bonjour.o bonjour.c
marque: gcc: Command not found
marque: * [bonjour.o] Erreur 127

Questions : How do I resolve this?

  • Êtes-vous sûr que vous avez le fichier principal.c dans le même répertoire où vous exécutez la commande make?
  • ouais très bien.
  • Merci pour le commentaire pénétrant. Je crois que quelque part le principal.c fichier a été supprimé. J'ai maintenant écrit un nouveau principal.c et mis dans le dossier. Cependant maintenant j'ai 'gcc -Wall-fPIC-c -o bonjour.o bonjour.c faire: gcc: Commande introuvable faire: *** [bonjour.o] Erreur 127'
  • Toute chance vous pouvez poster de débogage de faire une sortie?
  • C'est parce que vous êtes à la définition de la valeur de CHEMIN dans votre Makefile. La coquille est pas en mesure de trouver la gcc à cause de cela. Essayez de renommer la variable PATH dans le fichier Makefile pour, disons, LIBPATH (dans tous les endroits).
  • Merci, pas moyen que je l'aurais compris. Maintenant, je reçois l'erreur - /usr/bin/ld: cannot find -lmylib collect2: ld returned 1 exit status make: *** [main] Error 1 ne savons Pas pourquoi l'éditeur de liens n'est pas en mesure de trouver le fichier.