Prob. de compilation de PWLIB avec VC++ 2005 Exp. Ed.
Salut,
J'essais à mainte reprises de compiler les codes sources du projet OpenH323
(PWLIB , OpenH323, OpenMCU, OPAL) sous Win XP avec Microsoft Visual C++ 2005 Express Edition mais je tombe toujours sur des erreurs de compilations dès le premier programme i.e PWLIB. Il faut en fait compiler 2 programmes qui généreront des fichiers (des .libs) qui seront utiliser pour la compilation des autres sources.
Cependant dès la compilation du 2 ème programme(le premier se passe bien ), je vois toujours ce message d'erreurs :
Code:
1 2 3 4 5 6 7 8 9 10 11
| ------ Début de la génération : Projet : MergeSym, Configuration : Release Win32 ------
Compilation en cours...
MergeSym.cxx
.\MergeSym.cxx(197) : error C2065: 'inc_index' : identificateur non déclaré
.\MergeSym.cxx(280) : error C2440: 'initialisation' : impossible de convertir de 'const char *' en 'char *'
La conversion perd les qualificateurs
.\MergeSym.cxx(298) : error C2440: 'initialisation' : impossible de convertir de 'const char *' en 'char *'
La conversion perd les qualificateurs
Le journal de génération a été enregistré à l'emplacement "file://c:\pwlib\tools\MergeSym\Release\BuildLog.htm"
MergeSym - 3 erreur(s), 0 avertissement(s)
========== Génération : 1 a réussi, 1 a échoué, 1 mis à jour, 0 a été ignoré ========== |
J'essais de regarder un peu dans le code de ce programme pour reperer les erreurs et je trouve 2 lignes de codes qui correspondent à 2 des 3 erreurs :
Code:
char * namepos = strchr(line, '|');
Visiblement c'est cette ligne de codes qui posent problème !!!
Mais je crois savoir ( je suis pas un pro en developpement ) que strchr renvois bien un char *
Alors si quelqu'un a une idée de comment on peut resoudre ce problème, merci d'avance de me repondre car ça fait un bon moment que je suis là-dessus.
Compilation PWLIB sous Windows
J'ai bien essayé de faire un cast des lignes qui posent eventuellement probleme en faisant ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
Remplacement de cette ligne
char * namepos = strchr(line, '|');
par celle-ci
char * namepos = strchr((char *) line, '|');
et remplacement de cette ligne
const char * unmangled = strchr(namepos+namelen, '(');
par celle-ci
const char * unmangled = strchr((char *)(namepos+namelen), '('); |
Cela m'a reduit 1 l'erreur. La premiere ligne persiste toujours
Code:
1 2
| error C2440: 'initialisation' :
impossible de convertir de 'PString ' en 'char *' |
Je rappelle que j'ai dans mon code la declaration suivante :
PString line;
Ce qui signifie que line est un type que le compilateur ingnore. Enfin, c'est ce que je crois ! :?
Dans mes recherhes, j'ai trouvé ça ! http://www.voxgratia.org/docs/pwlib/...ssPString.html
Si tu as le temps de jeter un coup d'oeil, tu sauras certainement mieux que moi de quel type est PString et du meme coup line
La 3 ème erreur persiste :
Code:
.\MergeSym.cxx(197) : error C2065: 'inc_index' : identificateur non déclaré
Pourtant j'ai cette déclaration :
Code:
1 2 3 4 5 6
|
for (PINDEX inc_index = 0; inc_index < include_path.GetSize(); inc_index++)
{
............
if (inc_index >= include_path.GetSize())
'}' |
Je regarde bien le code pour voir si '}' englobe bien le if .
Merci de me répondre.