Can't load Sqlite client library "libsqlite3.so".Check your installation-Ubuntu lazarus / 16-Databases ---------------------------------------------------------------------- Goodman H__ · 2010-05-21 04:45 I got the subjected error message under Ubuntu 10 when I test sqlite3 DB connection.What does this mean,how can I fixed?I checked the system do have libsqlite3.so installed under \use\lib.Below is what I did : In the form I placed a sqlite3connection,in the property field databaseName I entered mydb.db3 which is in the same folder with the project.Now I tried to change active to true,I got the error message. It would be grateful if anybody can help. Regrds, Sam ---------------------------------------------------------------------- stonefull · 2010-05-21 05:20 Try sudo apt-get install libsqlite3-dev ---------------------------------------------------------------------- devEric69 · 2019-03-19 12:28 Try copying your library libsqlite3.so, into /usr/lib (executables search for libraries in a set of places, e.g. /lib, /usr/lib, /usr/local/lib,... so if you do not put your .so file in one of these places like /usr/local/lib, it might be a good place). ---------------------------------------------------------------------- Thaddy · 2019-03-19 14:00 Quote from: devEric69 on March 19, 2019, 01:28:12 pmTry copying your library libsqlite3.so, into /usr/lib (executables search for libraries in a set of places, e.g. /lib, /usr/lib, /usr/local/lib,... so if you do not put your .so file in one of these places like /usr/local/lib, it might be a good place). That's probably worse, since sqlite is already present on most systems (except the headers). Try this first and report back: Code: Bash  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i cd /sudo find -name libsqlite3.so* That wil give you something like this: Code: Text  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i  sudo find -name libsqlite3.so.*./usr/lib/arm-linux- gnueabihf/libsqlite3.so.0.8.6./usr/lib/arm-linux- gnueabihf/libsqlite3.so.0 Now just make a symlink to one of the last two that is called Code: Bash  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i libsqlite3.so# like /usr/local/lib/libsqlite3.so # or /usr/lib/libsqlite3.so#  (better to do the first one)The reason is that there are multiple versions and none of them are symlinked to the proper - default - name. ---------------------------------------------------------------------- devEric69 · 2019-03-22 12:07 Thank you for responding. To make sure I understand, I just have to make a link like this: Code: Bash  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i                            ↙--------------------------------------------↖ln    -sf    /usr/lib/arm-linux-gnueabihf/libsqlite3.so.0    /usr/lib/libsqlite3.so ( Besides: one thing that bothered me and that I didn't understand, that's why the symlink called libsqlite3.so.*0*. Why libsqlite3.so.0 instead of just libsqlite3.so? I found the explanation in this page (http://wiki.freepascal.org/SQLite/fr), paragraph "§ Cas de Debian Jessie": "[SNIP] Debian Jessie only offers the symbolic link libsqlite3.so.0. [/SNIP]" ==> from this historical limitation, the symlink is named libsqlite3.so.0 ) ---------------------------------------------------------------------- marcov · 2019-03-22 15:59 Quote from: devEric69 on March 22, 2019, 01:07:14 pmThank you for responding. To make sure I understand, I just have to make a link like this:                                       ↙--------------------------------------------↖ ln    -sf    /usr/lib/arm-linux-gnueabihf/libsqlite3.so.0    /usr/lib/libsqlite3.so Yes. Stonefull's suggestion to install the -dev package should also work. The sqlite3.so is the development target, the .so.0 the runtime target. ---------------------------------------------------------------------- Ñuño_Martínez · 2020-09-11 11:45 Update:  Today the problem persists.  The fix is exactly the same.  Is it still in development? ---------------------------------------------------------------------- PascalDragon · 2020-09-11 14:15 I think you misunderstand what “development” means in this context. This does not mean that it's the actively worked on version of SQLite (like trunk in FPC). Instead installing a -dev package on Debian-like systems means to install the headers as well as a symlink so that compilers/linkers can simply link against xxx.so which will be resolved to the correct version at link time (thus the final executable will require xxx.so.y). The end user does not need the development links in that case. Though of course this will break if a dynamic mechanism with LoadLibrary is used... ---------------------------------------------------------------------- Ñuño_Martínez · 2020-09-12 09:30 Quote from: PascalDragon on September 11, 2020, 04:15:36 pmThe end user does not need the development links in that case.I understand that the development version is needed to build (develop) the application, but problem is that the development version is needed to run the final executable and it shouldn't. But the culprit are the SQLite development team:  they didn't include the libsqlite3.so link in the release package, but in the development one! ---------------------------------------------------------------------- lucamar · 2020-09-12 11:35 Quote from: Ñuño_Martínez on September 12, 2020, 11:30:38 amBut the culprit are the SQLite development team:  they didn't include the libsqlite3.so link in the release package, but in the development one! It shouldn't be needed; the "dynamic loading" mechanism of the OS should already have an "alias" so that when an application calls for a .so it loads in fact a .so.X.Y without the need of a symlink. Note also that, generally speaking, the distro package is not made by the (in this case SQLite) developers but by some distro package maintainer(s), someone at Canonical or Debian in Ubuntu's case. ---------------------------------------------------------------------- MarkMLl · 2020-09-12 12:29 Quote from: lucamar on September 12, 2020, 01:35:07 pmIt shouldn't be needed; the "dynamic loading" mechanism of the OS should already have an "alias" so that when an application calls for a .so it loads in fact a .so.X.Y without the need of a symlink. Note also that, generally speaking, the distro package is not made by the (in this case SQLite) developers but by some distro package maintainer(s), someone at Canonical or Debian in Ubuntu's case. It /is/ needed, and responsibility lies with the distro maintainers. MarkMLl ---------------------------------------------------------------------- pmralbuquerque · 2025-12-03 16:56 Quote from: stonefull on May 21, 2010, 07:20:54 amTry sudo apt-get install libsqlite3-dev Worked, thank you!