J'essaie donc d'utiliser LZO dans mon application. Voici comment je l'ai inclus:Problème avec LZO
#include "lzoconf.h"
#include "lzodefs.h"
#include "lzo1x.h"
/* portability layer */
static const char *progname = NULL;
#define WANT_LZO_MALLOC 1
#define WANT_XMALLOC 1
#include "portab.h"
Puis dans l'application que je fais:
if (lzo_init() != LZO_E_OK)
{
printf("internal error - lzo_init() failed !!!\n");
printf("(this usually indicates a compiler bug - try recompiling\nwithout optimizations, and enable '-DLZO_DEBUG' for diagnostics)\n");
return 4;
}
Il compile bien. Aucune erreur ou avertissement pendant la compilation.
Lorsque je tente de lancer ma demande cependant, il y a deux erreurs:
/home/richard/client/src/portab.h:145: undefined reference to `__lzo_align_gap'
qui pointe sur cette ligne dans portab.h:
if (__lzo_align_gap(p, (lzo_uint) sizeof(lzo_align_t)) != 0)
{
printf("%s: C library problem: malloc() returned mis-aligned pointer!\n", progname);
exit(1);
}
return p;
Et dans ma demande:
/home/richard/client/src/main.cc:108: undefined reference to `__lzo_init_v2'
Ce qui indique:
if (lzo_init() != LZO_E_OK)
{
printf("internal error - lzo_init() failed !!!\n");
printf("(this usually indicates a compiler bug - try recompiling\nwithout optimizations, and enable '-DLZO_DEBUG' for diagnostics)\n");
return 4;
}
J'ai tous les fichiers d'en-tête à l'intérieur de mon répertoire source:
config.h
lzo1x.h
lzoconf.h
lzodefs.h
miniacc.h
portab.h
portab_a.h
Qu'est-ce que je fais mal?
Je compile mon application sous Ubuntu 10.10 dans Anjuta ide.
Oui. Mais je ne sais pas comment lier la bibliothèque. Ce n'est pas mentionné ici. –
@Richard: L'IDE d'Anjuta a-t-il un tutoriel qui mentionne quoi que ce soit à propos des "chemins de bibliothèque"? Je n'ai jamais entendu parler de cet IDE et je ne suis pas un expert Linux, mais il devrait y avoir des fichiers avec l'extension '.a' quelque part dans le répertoire LZO, n'est-ce pas? Peut-être dans un répertoire appelé 'lib'? – fredoverflow
juste une supposition mais est votre installation LD_PATH jusqu'à pointer vers la bibliothèque lzo?, Echo $ LD_PATH pour nous? – hhafez