Hi,

What am I doing wrong here? It's been a couple of years and perhaps this
part of my brain has dissolved.

$ cat foo.c
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <xenstat.h>

int main(int argc, char **argv)
{
    xenstat_handle *xhandle = NULL;

    xhandle = xenstat_init();

    if (xhandle == NULL) {
        fprintf(stderr, "%s: Failed to initialize xenstat library\n", argv[0]);
        exit(EXIT_FAILURE);
    }

    return 0;
}
$ cc -Wall -lxenstat -o foo foo.c
foo.c:(.text+0x18): undefined reference to `xenstat_init'
collect2: error: ld returned 1 exit status
$ nm -D /usr/lib/x86_64-linux-gnu/libxenstat.so | grep xenstat_init
0000000000003980 T xenstat_init@@VERS_4.20.0

I have checkjed with strace and the ld that cc spawns is opening that
shared library, and that shared library does have that symbol, so…
what's going on?

Thanks,
Andy

-- 
https://bitfolk.com/ -- No-nonsense VPS hosting

Reply via email to