I'm working on an application that will require an embedded database
backend and Sqlite is looking to be my prime choice here.

Now, I typically write the GUI and the working code seperately anyways
and tie them together later, so I figured I'd begin work on my backend
that talks with the database.  I've never actually done any previous
database programming so I'm learning as I go here :).

I'm having trouble getting my (very primitive) experimental program to
link however.  Below is my code for test.c:

#include <stdio.h>
#include <sqlite3.h>

int main (int argc, char **argv) {

  struct sqlite *pilotLog;
  
  pilotLog = sqlite_open("logbook.dat", 0, NULL);

  sqlite_close(pilotLog);

  return 0;
}

Now, with the following compiled command:

gcc -Wall -lsqlite3 test.c -o test

I get the following output:

test.c: In function `main':
test.c:9: warning: implicit declaration of function `sqlite_open'
test.c:9: warning: assignment makes pointer from integer without a cast
test.c:11: warning: implicit declaration of function `sqlite_close'
/tmp/ccg3BEWL.o(.text+0x28): In function `main':
: undefined reference to `sqlite_open'
/tmp/ccg3BEWL.o(.text+0x36): In function `main':
: undefined reference to `sqlite_close'
collect2: ld returned 1 exit status

I have verified that the library is there.  Normally I would assume that
I had something setup incorrectly, but I've repeated this on both a
completely up-to-date Gentoo Linux box and a FreeBSD 4.10 box, with the
same results.  Is there something obvious that I'm missing here? Thanks.

Mike Gaskins


Reply via email to