Bonjour,

J'ai un programme en C++ à compiler qui utilise xerces-c et log4cpp.
Dans mon dossier principal, j'ai mes scripts .cpp et .h ainsi que les dossiers include/ et lib/ qui contiennent les librairies dont j'ai besoin.
Le Makefile était incomplet quand j'ai récupéré les codes.

Au début, il ne trouvait ni log4cpp, ni xerces-c.
J'ai mis liblog4cpp.so.6.0.0 dans lib/ et fait le lien avec liblog4cpp.so. Dans include/ j'ai mis le dossier log4cpp qui contient les fichiers .h

J'ai modifié le Makefile
Code Makefile : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CC  = g++
CXXFLAGS=-Iinclude/ -O3 -fopenmp -Wall
 
LDFLAGS = -Llib/
LDLIBS  = -llog4cpp -lxerces-c -lpq -fopenmp
 
# Reconnaitre les Extension de nom de fichier *.c et *.o comme suffixe
SUFFIXES= .cpp .o 
.SUFFIXES: $(SUFFIXES) .
 
# Nom de l'executable
PROG    = Program
 
# Liste de fichiers objets necessaires pour le programme final
OBJS    = main.o program.o configtools.o dbtools.o
 
$(PROG): $(OBJS)
    $(CC) $(CXXFLAGS) $(LDFLAGS) -o bin/$(PROG) $(OBJS) $(LDLIBS)
 
.cpp.o:
    $(CC) $(CXXFLAGS) -c $*.cpp

Je n'ai plus le problème avec log4cpp, alors j'ai fait la même chose pour xerces-c. Il y a xerces-c 2.8 dans le dossier d'origine.
Mais quand je compile, j'ai ce message similaire à chaque utilisation de xercesc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
main.cpp:(.text+0x1ac5): undefined reference to `xercesc_2_7::XMLUni::fgXercescDefaultLocale
Rien dans les fichiers ne stipule l'utilisation de xerces-c 2.7.

J'ai tout de même essayer d'utiliser une version 2.7 de xerces-c, sans succès.
xcerces-c est bien initialisée puis terminée dans main.cpp.

Toute aide est la bienvenue, s'il vous plaît, il est urgent pour moi de pouvoir compiler ce programme. J'ai bien évidement déjà cherché sur les forums et testé diverses solutions.

J'utilise CentOS 6.10 avec g++ 4.4.7 (Red Hat 4.4.7-23).

Merci d'avance.