Compilation openldap, lib static

Fermé
ydel - Modifié par jipicy le 7/05/2010 à 10:42
mamiemando Messages postés 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 - 7 mai 2010 à 20:19
Bonjour,

J'arrive po a compiler les lib openldap pour les avoir en static ... me les crée toujours en dynamic (.so). j'ai mis --enable-static sur le configure .. mais rien ..
Quelqu'un à une idée ?

Bonne journée
merci

1 réponse

mamiemando Messages postés 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 7 749
Modifié par mamiemando le 7/05/2010 à 20:24
Il faudrait que tu regardes dans le Makefile si quelque chose a été prévu pour compiler en static. Ce ne sont pas les mêmes options de compilation. Voici un extrait d'un makefile que j'ai charcuté pour que tu aies le concept :

NAME  = libplop # à corriger par le nom de ta librairie     
LIB_A = $(NAME).a     
LIB_SO = $(NAME).so     

CXX    = g++       
AR     = ar       
RANLIB = ranlib       

SYSLIBS =   
BUILD_DIR = # /le/repertoire/ou/tu/construis/la/librairie       
BUILD_LIB_OBJS = # les .o   

CXXFLAGS = -W -Wall -O2 -fPIC -funroll-loops       
CPPFLAGS = # Flags commun en C et en C++  

LDLIBS = # libs nécessaires au .so (par exemple -lm...)       
LDFLAGS  = -time #+ options -L... et -Wl,R... si besoin      

LINK.cpp    = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $(CXX_LDFLAGS)       

$(BUILD_DIR)/$(LIB_A): $(BUILD_LIB_OBJS)       
    $(AR) -cr $@ $(BUILD_LIB_OBJS)       
    $(RANLIB) $@       

$(BUILD_DIR)/$(LIB_SO): $(BUILD_LIB_OBJS)       
    $(LINK.cpp) -shared -o $@ $(BUILD_LIB_OBJS) $(LDLIBS) $(SYSLIBS)       


Soit dit en passant c'est un besoin un peu surprenant de compiler openldap soi-même quand on peut l'avoir directement compilé via un paquet.

Et c'est encore plus surprenant de vouloir le compiler en .a au lieu d'utiliser un .so et donc de ne pas bénéficier des avantages fournis par un .so (tirer parti des mises à jour dudit .so...), surtout qu'openldap ne me paraît pas compliqué à installer.

Si le but est d'injecter openldap dans une application et de rendre cette application standalone, assure-toi que tu restes en règle avec la licence d'openldap :
https://www.openldap.org/software/release/license.html
0