开发者

Problem with LZO

So I am trying to use LZO in my application. Here is how I have included it:

#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"

Then in the application I do:

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;
}

It compiles ok. No errors or warnings during compilation.

When I try to run my application though, there are two errors:

/home/richard/client/src/portab.h:145: undefined reference to `__lzo_align_gap'

Which points at this line in 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;

And in my application:

/home/richard/client/src/main.cc:108: undefined reference to `__lzo_init_v2'

Which points to:

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;
}

I have all the header files inside my source directory:

config.h
lzo1x.h
lzoconf.h
lzodefs.h
miniacc.h
portab.h
portab_a.h

What am I doing wrong?

I am compiling my application in Ubuntu 10.10 in Anjuta ide.


Headers is not enough, you need to link to the libraries. Have you read the documentation?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜