Hersteller: *** No rule to make target `gcc', needed by `Mitarbeiter.o'. Stoppen
Ich bin ganz neu auf makefile. Könnten Sie mir bitte helfen korrigieren mit dem unten makefile:
Habe ich eine Employee-Klasse. Manager-Klasse ist abgeleitet von der Klasse Mitarbeiter.
Und Klasse Link Verweise auf den beiden Employee-und Manager-Klasse.
Fehler:
make: *** No rule to make target `gcc', needed by `Employee.o'. Stop.
Makefile :
CC = gcc
TOP=/usr/local/share/cimple
ROOT= $(PEGASUS_ROOT)
##BINDIR= ${PEGASUS_HOME}/bld/bin
TARGET = ${PEGASUS_HOME}/lib/libEmployee.so
LIBRARY_FLAGS = -L${PEGASUS_HOME}/lib
##PROVIDERROOT = $(PEGASUS_ROOT)/../providers
INSTANCE_PROVIDER_OBJECTS = Employee.o Manager.o Link.o module.o repository.o Employee_Provider.o Manager_Provider.o Link_Provider.o
COMPILE_FLAGS = -W -Wall -g -fPIC
LINK_FLAGS = -W -Wall -g -shared
EXTRA_INCLUDES = -I$(PROVIDERROOT) -I${PEGASUS_ROOT}/src
LIBRARIES = pegcommon pegprovider
DYNAMIC_LIBRARIES = -lpegcommon -lpegprovider
include $(TOP)/mak/config.mak
MODULE=1
SHARED_LIBRARY=Employee
##
## Define source files for compile and link
##
SOURCES += Employee.cpp
SOURCES += Manager.cpp
SOURCES += Link.cpp
SOURCES += module.cpp
SOURCES += repository.cpp
SOURCES += Employee_Provider.cpp
SOURCES += Manager_Provider.cpp
SOURCES += Link_Provider.cpp
##
## Module defined as Pegasus C++ interface
##
CIMPLE_PEGASUS_MODULE=1
DEFINES += -DCIMPLE_PEGASUS_MODULE
LIBRARIES += cimplepegadap
LIBRARIES += cimple
include $(TOP)/mak/rules.mak
${TARGET} : ${INSTANCE_PROVIDER_OBJECTS} Makefile ${CC} ${LINK_FLAGS} ${LIBRARY_FLAGS} -o ${TARGET} ${INSTANCE_PROVIDER_OBJECTS} ${DYNAMIC_LIBRARIES}
Employee.o : Employee.cpp Makefile Employee.h ${CC} ${COMPILE_FLAGS} ${EXTRA_INCLUDES} -c Employee.cpp
Manager.o : Manager.cpp Makefile Manager.h ${CC} ${COMPILE_FLAGS} ${EXTRA_INCLUDES} -c Manager.cpp
Link.o : Link.cpp Makefile Link.h ${CC} ${COMPILE_FLAGS} ${EXTRA_INCLUDES} -c Link.cpp
repository.o : repository.cpp Makefile repository.h ${CC} ${COMPILE_FLAGS} ${EXTRA_INCLUDES} -c repository.cpp
module.o : module.cpp Makefile module.h ${CC} -DCIMPLE_PEGASUS_MODULE ${COMPILE_FLAGS} ${EXTRA_INCLUDES} -c module.cpp
Employee_Provider.o : Employee_Provider.cpp Makefile Employee_Provider.h ${CC} ${COMPILE_FLAGS} ${EXTRA_INCLUDES} -c Employee_Provider.cpp
Manager_Provider.o : Manager_Provider.cpp Makefile Manager_Provider.h ${CC} ${COMPILE_FLAGS} ${EXTRA_INCLUDES} -c Manager_Provider.cpp
Link_Provider.o : Link_Provider.cpp Makefile Link_Provider.h ${CC} ${COMPILE_FLAGS} ${EXTRA_INCLUDES} -c Link_Provider.cpp
Bin ich immer den oben genannten Fehler.Jede Hilfe wäre sehr geschätzt werden! Vielen Dank im Voraus!
- hinzufügen betritt und tabs. in makefiles sind Sie kritisch.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Richtigen makefile, um ein "Enter" und "Tab" - Zeichen vor dem Befehl eigentlich macht der Gegner, wie z.B. diese für die Mitarbeiter.o:
Die Allgemeine syntax der Makefile-targets ist:
Siehe z.B. hier für eine genauere Erklärung: http://mrbook.org/tutorials/make/
dem tool GNU Make benötigt Aufstellungen zu betrachten einen text als ein Rezept.
Darüber hinaus können Sie daran interessiert, Muster, Regeln. Könnten Sie alle ersetzen, die *.o Generierung von Regeln mit einem generischen (basiert auf pattern-matching):
Diese Regel generieren *.o-Dateien aus den entsprechenden source - /header-Dateien. Leicht zu pflegen !
Hinweis: die
tab
vor${CC}...