jonasge
19-04-2005, 21:40
Hallo,
ich versuche schon seit geraumert zeit ein Makefile zu schreiben, das mir korrekte SONAMES erzeugt, ich habe es schon mit libtool und gcc -soname versucht, leider hat nichts wirklich hingehauen, oft hatte ich eine .so mit 1K obwohl die o datei 44K gross ist.
Ich habe das Makefile jetzt nochmal neu gemacht, und habe nur eine .o datei.
SOURCE = config_api.c find.c utils.c
SHLIB = config_api.o
LIB = -lmysqlclient -lcapi20 -L/usr/lib
CFLAGS = -Wall
capi2name: shlib client.o indb.o capiconn.o capi2name.o
$(CC) -shared $(LIB) config_api.o client.o indb.o capiconn.o capi2name.o -o capi2name
shlib: $(SOURCE)
$(CC) -shared -fPIC -lpthread -o $(SHLIB) $(SOURCE)
client.o: client.c
$(CC) $(CFLAGS) -c client.c
indb.o: indb.c
$(CC) $(CFLAGS) -c indb.c
capiconn.o: capiconn.c
$(CC) $(CFLAGS) -c capiconn.c
capi2name.o: capi2name.c
$(CC) $(CFLAGS) -c capi2name.c
Kann mir jmd erklaeren, zeigen wie ich das mit korrekten SO namen machen.
das es so aussieht:
/usr/lib/libconfig_api.so.0.0.0
usw
Gru'ß
Jonas
ich versuche schon seit geraumert zeit ein Makefile zu schreiben, das mir korrekte SONAMES erzeugt, ich habe es schon mit libtool und gcc -soname versucht, leider hat nichts wirklich hingehauen, oft hatte ich eine .so mit 1K obwohl die o datei 44K gross ist.
Ich habe das Makefile jetzt nochmal neu gemacht, und habe nur eine .o datei.
SOURCE = config_api.c find.c utils.c
SHLIB = config_api.o
LIB = -lmysqlclient -lcapi20 -L/usr/lib
CFLAGS = -Wall
capi2name: shlib client.o indb.o capiconn.o capi2name.o
$(CC) -shared $(LIB) config_api.o client.o indb.o capiconn.o capi2name.o -o capi2name
shlib: $(SOURCE)
$(CC) -shared -fPIC -lpthread -o $(SHLIB) $(SOURCE)
client.o: client.c
$(CC) $(CFLAGS) -c client.c
indb.o: indb.c
$(CC) $(CFLAGS) -c indb.c
capiconn.o: capiconn.c
$(CC) $(CFLAGS) -c capiconn.c
capi2name.o: capi2name.c
$(CC) $(CFLAGS) -c capi2name.c
Kann mir jmd erklaeren, zeigen wie ich das mit korrekten SO namen machen.
das es so aussieht:
/usr/lib/libconfig_api.so.0.0.0
usw
Gru'ß
Jonas