chris21
22-05-2007, 15:13
Hallo,
ich habe mein Problem mit meiner Makefile.
Meine ordner struktr sieht so aus :
prj/testoderner1/test1.h
prj/testoderner1/test1.cpp
prj/testoderner2/test2.h
prj/testoderner2/test2.cpp
prj/testoderner3/test3.h
prj/testoderner3/test3.cpp
prj/main.cpp
prj/makefile.cygwin
nun möchte ich in der Makefile die die drei test*.h und test*.cpp für mein main zusammenführen.
meine Makefile.cygwin sieht so aus :
TARGET_ARCH = cygwin
CC = g++
OPT = #-O3
DEBUG = -g
OTHER = #-Wall
#CFLAGS = $(OPT) $(OTHER)
CFLAGS = $(DEBUG) $(OTHER)
MODULE = run
SRCS = main.cpp test1.cpp test2.cpp test3.cpp
OBJS = $(SRCS:.cpp=.o)
HDRS = test1.h test2.h test3.h
include Makefile.defs
die Makefile .defs die includiert wird sieht so aus :
## Variable that points to SystemC installation path
SYSTEMC = /usr/local/systemc
MATLAB = C:/Programme/MATLAB/R2006a/extern
#SYSTEMC = ../../..
M_INCDIR = -I$(MATLAB)/include
M_LIBDIR = -L$(MATLAB)/lib/win32/microsoft
SC_INCDIR = -I. -I.. -I$(SYSTEMC)/include
SC_LIBDIR = -L. -L.. -L$(SYSTEMC)/lib-$(TARGET_ARCH)
SC_INCDIR_TLM = -I$(SYSTEMC)/TLM/tlm/
OTHER_INC = -I../testoderner1/ -I../testoderner2/ -I../testoderner3/
LIBS = -lsystemc -lm -llibeng -llibmx -llibmat $(EXTRA_LIBS)
EXE = $(MODULE).exe
.SUFFIXES: .cc .cpp .o .x
$(EXE): $(OBJS) $(SYSTEMC)/lib-$(TARGET_ARCH)/libsystemc.a
$(CC) $(CFLAGS) $(SC_INCDIR) $(SC_INCDIR_TLM) $(M_INCDIR) $(SC_LIBDIR) $(M_LIBDIR) $(OTHER_INC) -o $@ $(OBJS) $(LIBS) 2>&1 | c++filt
.cpp.o : $(HDRS)
$(CC) $(CFLAGS) $(SC_INCDIR) $(SC_INCDIR_TLM) $(M_INCDIR) $(OTHER_INC) -c $<
.cc.o : $(HDRS)
$(CC) $(CFLAGS) $(SC_INCDIR) $(SC_INCDIR_TLM) $(M_INCDIR) $(OTHER_INC) -c $<
clean::
rm -f $(OBJS) *~ $(EXE) core
ultraclean: clean
rm -f Makefile.deps
dann rufe ich die Makefile.cygwin mit folgnden Befehl auf:
make -f Makefile.cygwin
leider kommt nun der Fehler :
"No rule to make target test1.o" .....
(wenn ich die Datei test1.cpp und test1.h in den gleichen ordneer wie main.cpp kopiere funktioniert es)
vielleicht kann mir hier ja jemadn weiterhelfen, oder bin ich im flaschen forum ?
Danke euch,
chris
ich habe mein Problem mit meiner Makefile.
Meine ordner struktr sieht so aus :
prj/testoderner1/test1.h
prj/testoderner1/test1.cpp
prj/testoderner2/test2.h
prj/testoderner2/test2.cpp
prj/testoderner3/test3.h
prj/testoderner3/test3.cpp
prj/main.cpp
prj/makefile.cygwin
nun möchte ich in der Makefile die die drei test*.h und test*.cpp für mein main zusammenführen.
meine Makefile.cygwin sieht so aus :
TARGET_ARCH = cygwin
CC = g++
OPT = #-O3
DEBUG = -g
OTHER = #-Wall
#CFLAGS = $(OPT) $(OTHER)
CFLAGS = $(DEBUG) $(OTHER)
MODULE = run
SRCS = main.cpp test1.cpp test2.cpp test3.cpp
OBJS = $(SRCS:.cpp=.o)
HDRS = test1.h test2.h test3.h
include Makefile.defs
die Makefile .defs die includiert wird sieht so aus :
## Variable that points to SystemC installation path
SYSTEMC = /usr/local/systemc
MATLAB = C:/Programme/MATLAB/R2006a/extern
#SYSTEMC = ../../..
M_INCDIR = -I$(MATLAB)/include
M_LIBDIR = -L$(MATLAB)/lib/win32/microsoft
SC_INCDIR = -I. -I.. -I$(SYSTEMC)/include
SC_LIBDIR = -L. -L.. -L$(SYSTEMC)/lib-$(TARGET_ARCH)
SC_INCDIR_TLM = -I$(SYSTEMC)/TLM/tlm/
OTHER_INC = -I../testoderner1/ -I../testoderner2/ -I../testoderner3/
LIBS = -lsystemc -lm -llibeng -llibmx -llibmat $(EXTRA_LIBS)
EXE = $(MODULE).exe
.SUFFIXES: .cc .cpp .o .x
$(EXE): $(OBJS) $(SYSTEMC)/lib-$(TARGET_ARCH)/libsystemc.a
$(CC) $(CFLAGS) $(SC_INCDIR) $(SC_INCDIR_TLM) $(M_INCDIR) $(SC_LIBDIR) $(M_LIBDIR) $(OTHER_INC) -o $@ $(OBJS) $(LIBS) 2>&1 | c++filt
.cpp.o : $(HDRS)
$(CC) $(CFLAGS) $(SC_INCDIR) $(SC_INCDIR_TLM) $(M_INCDIR) $(OTHER_INC) -c $<
.cc.o : $(HDRS)
$(CC) $(CFLAGS) $(SC_INCDIR) $(SC_INCDIR_TLM) $(M_INCDIR) $(OTHER_INC) -c $<
clean::
rm -f $(OBJS) *~ $(EXE) core
ultraclean: clean
rm -f Makefile.deps
dann rufe ich die Makefile.cygwin mit folgnden Befehl auf:
make -f Makefile.cygwin
leider kommt nun der Fehler :
"No rule to make target test1.o" .....
(wenn ich die Datei test1.cpp und test1.h in den gleichen ordneer wie main.cpp kopiere funktioniert es)
vielleicht kann mir hier ja jemadn weiterhelfen, oder bin ich im flaschen forum ?
Danke euch,
chris