Also versuche ich LZO in meiner Anwendung zu verwenden. Hier ist, wie ich es enthalten:Problem mit 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"
dann in der Anwendung, die ich tun:
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;
}
Es ok kompiliert. Keine Fehler oder Warnungen während der Kompilierung.
Wenn ich versuche, wenn meine Anwendung laufen zu lassen, gibt es zwei Fehler:
/home/richard/client/src/portab.h:145: undefined reference to `__lzo_align_gap'
die an dieser Linie in portab.h Punkte:
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;
Und in meiner Anwendung:
/home/richard/client/src/main.cc:108: undefined reference to `__lzo_init_v2'
Was bedeutet:
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;
}
Ich habe alle Header-Dateien in meinem Quellverzeichnis:
config.h
lzo1x.h
lzoconf.h
lzodefs.h
miniacc.h
portab.h
portab_a.h
Was mache ich falsch?
Ich kompiliere meine Anwendung in Ubuntu 10.10 in Anjuta ide.
Ja. Aber ich weiß nicht, wie ich die Bibliothek verlinken soll. Es ist dort nicht erwähnt. –
@Richard: Hat die Anjuta IDE ein Tutorial, das etwas über "Bibliothekspfade" erwähnt? Ich habe noch nie von dieser IDE gehört und bin kein Linux-Experte, aber irgendwo im LZO-Verzeichnis sollten sich Dateien mit der Endung '.a 'befinden, oder? Vielleicht in einem Verzeichnis namens 'lib'? – fredoverflow
nur eine Vermutung, aber ist Ihr LD_PATH Setup auf die LZO-Bibliothek zeigen ?, Echo $ LD_PATH für uns? – hhafez