Re: Problems with sqlite
- From: Fredrik Hedberg <fredrik hedberg avafan com>
- To: Tom Coleman <tmcol bigpond net au>
- Cc: Michael Davies <michael msdavies net>, Dashboard <dashboard-hackers gnome org>
- Subject: Re: Problems with sqlite
- Date: Tue, 14 Dec 2004 11:59:48 +0100
I'm pretty sure that the Mono.Data.SqliteClient.dll uses the 2.x API of
sqlite.so/dll.
Fredrik
Tom Coleman wrote:
On Tue, 2004-12-07 at 23:25 -0600, Michael Davies wrote:
Jon Trowbridge said:
On Tue, 2004-12-07 at 21:37 -0600, Michael Davies wrote:
ERROR: System.Reflection.TargetInvocationException: Exception has been
thrown by the target of an invocation. ---> System.DllNotFoundException:
sqlite
in <0x00053> (wrapper managed-to-native)
This is just a guess, but the problem could be a mono-ism that has been
a source of much confusion.
The mono runtime will throw a System.DllNotFoundException any time an
attempt to dlopen() a shared library fails. This is misleading because
there are several different ways a dlopen() call can fail --- the file
not being found is just the most obvious one.
Often, dlopen() will fail because of unresolved symbols. This usually
happens because the shared library's dependencies were not set properly
at build-time. It is an easy mistake to make: lots of shared libraries
are never ever dlopen()ed by other apps --- they are linked to
applications, along with lots of other libraries via a tool like
pkg-config that also (independently) manages library dependencies.
There is an easy way to test for this: try linking just that library
against a trivial C program. Create a file trivial.c containing just
"main() { }" and then:
% gcc trivial.c -lsqlite
If there are no errors, libsqlite.so's dependencies are set correctly
and the problem must be something else. If you see unresolved symbols,
the Ubuntu libsqlite.so is broken.
Thanks Jon for your guidance - you were right on the money.
Ubuntu's libsqlite.so appears broken. It looks ok, but on installing the
CVS version of sqlite in a different prefix, everything suddenly works.
(Two points for those googling in the future - make sure you back revise
the CVS repo for sqlite to 2.8, and make sure LD_LIBRARY_PATH points to
your newly built sqlite rather than the system's installed version)
CVS Beagle now is running as expected on my Warty Ubuntu install.
I'm not sure if this is a problem with ubuntu or with sqlite version 3.0
I was getting the same problem on my gentoo unstable system, so i
downgraded sqlite to 2.8 and it fixed the problem.
Just adding my own two cents.
Tom
_______________________________________________
Dashboard-hackers mailing list
Dashboard-hackers gnome org
http://mail.gnome.org/mailman/listinfo/dashboard-hackers
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]