Getting an executable requires two steps. First you compile the application program then you link the output of the compiler with standard and special link libraries.

I am not familiar with your setup and don't know what Linux distribution you are using or machine you are running but seeing "arm" makes me suspicious that you might have an sqlite library compiled for an ARM processor and be trying to run it on Intel.

Keiichi McGuire wrote:
I'm even newer to Linux so I'm a bit confused when you mention that I need
to recompile the lib file.  How should I go about recompiling and test that
out?  It just seems weird to me that gcc is able to compile this, but
arm-linux-gcc is not. could it be that arm-linux-gcc was setup incorrectly? I followed the directions from sqlite on cross compiling and I believe i set
up arm-linux-gcc correctly (or not!).  Thanks to everyone helping me out!

On 7/11/06, David Bicking <[EMAIL PROTECTED]> wrote:


Your problem is that your copy of libsqlite.a is incompatible. Being a
relative newbie too, I had a similar problem, but not with sqlite, and I
had to recompile the lib file. After that, I was able to build my
program. Perhaps you need to grab the source to sqlite and use
arm-linux-gcc to compile it in to a library file.

David

On Tue, 2006-07-11 at 20:16 -0700, Keiichi McGuire wrote:
> still no luck:(
> and yea I'm still a bit new to C.  I have a few years experience in C
during
> school, but mainly used for microcontrollers, so I've done a very little
> amount of system applications.
>
> anyways, with the pointer added to the errMsg, as well as the -lsqlite
> switch, i get the following:
>
> [EMAIL PROTECTED]:~/dev/c$ arm-linux-gcc test.c -o test6
> /tmp/ccSgrZe2.o(.text+0x30): In function `main':
> : undefined reference to `sqlite_open'
> collect2: ld returned 1 exit status
> [EMAIL PROTECTED]:~/dev/c$ arm-linux-gcc test.c -o test6 -lsqlite
>
/usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/../../../../arm-linux/bin/ld:
> s kipping incompatible
> /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/libsqlite. so when
> searching for -lsqlite
>
/usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/../../../../arm-linux/bin/ld:
> s kipping incompatible
> /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/libsqlite. a when
searching
> for -lsqlite
>
/usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/../../../../arm-linux/bin/ld:
> c annot find -lsqlite
> collect2: ld returned 1 exit status
>
> this is making my brain hurt! :(
>
>
>
> On 7/11/06, John Stanton <[EMAIL PROTECTED]> wrote:
> >
> > Your program should look more like this -
> >
> > sqlite   *db;
> > char     *errmsg = NULL;    /*Ptr to possible error message.*/
> >
> > int main() {
> >    printf("Hello!\n");
> >    db = sqlite_open("sqlitetest", 0660, &errmsg);
> >
> >    /*At this point if you get an error errmsg will not be null
> >    and will point to the error message.  It will have malloc'd
> >    memory for that message so you need to "free" it or suffer
> >    a memory leak.*/
> >    if (errmsg != NUL) {
> >      ...
> >    }
> > .....
> > }
> >
> > I guess you are new to C. It will get easier. The first ten years are
> > the hardest.
> >
> > Keiichi McGuire wrote:
> > > Hi John,
> > > I still get an error when i use the -lsqlite switch. When i take
that
> > > out it
> > > says:
> > > incompatible types in assignment
> > > passing arg 3 of 'sqlite_open' from incompatible pointer type
> > >
> > > also I wanted to use v.3, but i'm working on a system where the disk
> > space
> > > is limited to 64megs, and i actually got the v2 from an ipkg
package,
> > and
> > > there was an sqlite3 package available, but it was not compatible
with
> > php
> > > that is on this system.
> > >
> > > -Keiichi
> > >
> > > On 7/11/06, John Stanton <[EMAIL PROTECTED]> wrote:
> > >
> > >>
> > >> Keiichi McGuire wrote:
> > >> > Hi everyone,
> > >> > I'm still a bit new to sqlite and also to crosscompiling
programs.
> > >> > I've been having problems with being able to compile this test c
> > >> program
> > >> > that should just connect to the database.
> > >> >
> > >> > My program looks like this:
> > >> >
> > >> > #include<stdio.h>
> > >> > #include"sqlite.h>
> > >> >
> > >> > int main()
> > >> > {
> > >> >
> > >> > printf("Hello!\n");
> > >> > sqlite *db;
> > >> > char errMsg;
> > >> > errMsg = NULL;
> > >> >
> > >> > db = sqlite_open("sqlitetest",0660,&errMsg);
> > >> >
> > >> > return 0;
> > >> > }
> > >> >
> > >> >
> > >> > and I get the following error:
> > >> >
> > >> > [EMAIL PROTECTED] dev]# arm-linux-gcc test.c -o test4 -L
> > >> > /home/kmcgui/sqlite-arm/.lib
> > >> >
> > >> > s/ -lsqlite tesc: In function `main':
> > >> > test.c:9: warning: assignment makes integer from pointer without
a
> > cast
> > >> > test.c:11: warning: pabssing arg 3 of qlite_open' from
incompatible
> > >> pointer
> > >> > type
> > >> >
> > >>
> >
/usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3l.3.2/../../../.m-linux/biin/ld:
> > >>
> > >> >
> > >> > skipping mpatible /home/kmcgui/sqlite-arm/.flibs//libsqliteso
when
> > >> > senarching for
> > >> >
> > >>
> >
-ls/local/armi/3.3.2/lib/gcc-e/usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/../../../../arm-linux/bin/ld:
> > >>
> > >> >
> > >> > skipping incompatible
> > >> > /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/libsqlite.a when
> > >> > searlching
> > >> > for -lsqle
> > >> >
> > >>
> >
/usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/../../../../arm-linux/bin/ld:
> > >>
> > >> >
> > >> > cannot find -lsqlite
> > >> > collect2: ld rxeturned 1 exit s
> > >> >
> > >> > thank you in advance!!!
> > >> >
> > >> >
> > >> > -Keiichi
> > >> >
> > >> Try declaring errMsg as a character array rather than a character,
> > >>
> > >>   char errMsg[256];
> > >>
> > >> Arg3 3 of sqlite_open is of type char **.
> > >>
> > >> Note that you are using Sqlite V2.  If you are starting a new
project
> > >> you might find using Sqlite V3 from the beginning a good idea.
> > >>
> > >
> >
> >




Reply via email to