vimix
Teuflisch
Hallo,
ich wollte es ja vermeiden diese Frage hier stellen zu muessen aber irgendwie mach ich was falsch und ich gebe auf -> mich.
Lib mit test-funktion wird erstellt und installiert. Makefile:
TestProgramm welche test() aufruft: Makefile
Die echos sind eine andere Baustelle. Ich weiss nicht warum, aber addprefix liefert nur "" zurueck.
Beim bauen bekomme ich den Fehler:
Die lib wird jedoch gefunden (sonst wuerde ich ja einen dementsprechenden Fehler bekommen).
nm sagt auch dass test() da ist. Warum kann der Linker test() trotzdem nicht finden?
Tja, ich habe mich bisher immer auf das Buildsystem von Eclipse verlassen. Jetzt dachte ich mir, ich sollte mal meine Zeit nutzen und mich anstaendig mit make und co beschaeftigen und jetzt bin ich verlassen.
System: FreeBSD 8.1
Danke und lg
vimix
ich wollte es ja vermeiden diese Frage hier stellen zu muessen aber irgendwie mach ich was falsch und ich gebe auf -> mich.
Lib mit test-funktion wird erstellt und installiert. Makefile:
Code:
CFLAGS=-g -Wall -pedantic -fPIC --std=c99
all: static dynamic
dynamic: linkedList
cc -shared -Wl,-soname,libAlgoDat.so.0 -o libAlgoDat.so.0.0.1 linkedList.o
static: linkedList
ar rcs libAlgoDat.a linkedList.o
linkedList: linkedList.c linkedList.h
cc -c -fPIC linkedList.c -o linkedList.o
install:
cp libAlgoDat.a /usr/lib/libAlgoDat.a
cp libAlgoDat.so.0.0.1 /usr/lib/libAlgoDat.so.0.0.1
mkdir /usr/include/AlgoDat
cp *.h /usr/include/AlgoDat/
deinstall:
rm -r /usr/include/AlgoDat
rm /usr/lib/libAlgoDat.a
rm /usr/lib/libAlgoDat.so.0.0.1
reinstall: deinstall install
clean:
rm *.o
.PHONY: all dynamic static install deinstall reinstall clean
TestProgramm welche test() aufruft: Makefile
Code:
LIBS = AlgoDat
AlgoDatTest: main.c
#echo $(LIBS)
#echo $(addprefix -l, $(LIBS))
cc -I/usr/include/AlgoDat/ -L/usr/lib -lAlgoDat main.c -o AlgoDatTest
Beim bauen bekomme ich den Fehler:
Code:
/var/tmp//cc5rMG1W.o(.text+0x2e): In function `main':
: undefined reference to `test'
nm sagt auch dass test() da ist. Warum kann der Linker test() trotzdem nicht finden?
Tja, ich habe mich bisher immer auf das Buildsystem von Eclipse verlassen. Jetzt dachte ich mir, ich sollte mal meine Zeit nutzen und mich anstaendig mit make und co beschaeftigen und jetzt bin ich verlassen.
System: FreeBSD 8.1
Danke und lg
vimix