Makefile
Verfasst: 01.04.2009, 22:51
Hey,
ich versuch gerade ein Makefile für meine OpenSource Network-Library zu schreiben. Tu mir da aber noch schwer.
Zwei Probleme habe ich:
1. Die Object Files werden nicht automatisch erstellt sondern immer nur eins dann bricht es ab weil es die anderen nich finden kann. Wenn ich make ein paar mal ausführe geht es dann weil alle erstellt wurden. (Hoff ich versteht was ich damit mein :P )
2. Ich linke gegen "rt" was mir einige Fehlermeldungen verursacht:
grüße,
Halan
ich versuch gerade ein Makefile für meine OpenSource Network-Library zu schreiben. Tu mir da aber noch schwer.
Zwei Probleme habe ich:
1. Die Object Files werden nicht automatisch erstellt sondern immer nur eins dann bricht es ab weil es die anderen nich finden kann. Wenn ich make ein paar mal ausführe geht es dann weil alle erstellt wurden. (Hoff ich versteht was ich damit mein :P )
2. Ich linke gegen "rt" was mir einige Fehlermeldungen verursacht:
Hier das Makefilekai@Kai-Desktop:~/Development/OpenNetwork$ make
g++ -o libOpenNetwork.so.0.4.0 CTCPPort.o CUDPPort.o BitStream.o main.o common.o -lrt -I ./extensions/ -I ./include/
/usr/lib/gcc/x86_64-linux-gnu/4.3.3/../../../../lib/crt1.o: In function `_start':
/build/buildd/glibc-2.9/csu/../sysdeps/x86_64/elf/start.S:109: undefined reference to `main'
collect2: ld gab 1 als Ende-Status zurück
make: *** [libOpenNetwork.so] Fehler 1
Code: Alles auswählen
CXX = g++
OBJECTS = CTCPPort.o CUDPPort.o BitStream.o main.o common.o
LIBS = -lrt
INCLUDES = -I ./extensions/ -I ./include/
CFLAGS = -Wall -O2
BINDIR = $(DESTDIR)/usr/bin
MAJOR = 0
MINOR = 4
BUILD = 0
VERSION = $(MAJOR).$(MINOR).$(BUILD)
NAME = libOpenNetwork.so
all: $(NAME)
.PHONY: all
$(NAME): $(OBJECTS)
$(CXX) -o $(NAME).$(VERSION) $(OBJECTS) $(LIBS) $(INCLUDES)
%.o: %.cpp
$(CXX) -c $(OBJECTS) $(CFLAGS) $(INCLUDES) $<
BitStream.o : ./extensions/BitStream/BitStream.cpp
$(CXX) -c $(OBJECTS) $(CFLAGS) $(INCLUDES) $<
install:
install --mode=755 $(NAME).$(VERSION) $(BINDIR)/
cp -S $(BINDIR)/$(NAME).$(VERSION) $(BINDIR)/$(NAME).$(MAJOR).$(MINOR)
cp -S $(BINDIR)/$(NAME).$(VERSION) $(BINDIR)/$(NAME).$(MAJOR)
clean:
rm *.o
uninstall:
rm $(BINDIR)/$(NAME)
Halan