Compilation openldap, lib static

ydel -  
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   -
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 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
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