Does anyone know how to get SQLite 3.x working in Code::Blocks?
Everytime i try to use SQLite 3.x i receive the following error
.objs\main.o(.text+0x12e7):main.cpp: undefined reference to `sqlite3_open'
.objs\main.o(.text+0x12fb):main.cpp: undefined reference to `sqlite3_errmsg'
.objs\main.o(.text+0x1322):main.cpp: undefined reference to `sqlite3_close'
.objs\main.o(.text+0x135d):main.cpp: undefined reference to `sqlite3_get_table'
.objs\main.o(.text+0x1527):main.cpp: undefined reference to `sqlite3_free_table'
.objs\main.o(.text+0x1532):main.cpp: undefined reference to `sqlite3_close'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
I mean a program i'm working on..
When i specify libsqlite3.a or libsqlite3 in the 'link libraries' with the path to that file in the 'linker directory' i receive the following error:
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
When i delete the path in 'linker directory' i see the following error:
C:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lsqlite3
collect2: ld returned 1 exit status
Hello,
I'm using this topic because I have exactly the same problem.
I would like to use SQLite library in a C::B project
Here is my source code :
#include <iostream>
#include "sqlite3.h"
typedef struct sqlite3 sqlite3;
sqlite3 *db;
using namespace std;
int main()
{
int opening = sqlite3_open("tolkien_world.db", &db);
if (opening == 0) {
cout << "Base ouverte avec succès" << endl;
} else {
cout << "Echec de l'ouverture de la base" << endl;
}
return 0;
}
I have linked "tclsqlite3.dll" in my project (Build options > Linker options), but I have the same error message :
"ld.exe cannot find ltclsqlite3.dll"
If anyone can help me... I don't know what to do to solve this problem
Thank you ;)
Why on Earth this is giving me grief is beyond me. i'm having the same issue of getting sqlite3 installed on CodeBlocks.
Everything goes well until it starts to link. Here is the result from the Build Log
mingw32-g++.exe -LD:\CodeBlocks\wx263\lib\gcc_dll -LC:\MinGW\lib -o bin\Release\ROSIn.exe obj\Release\newcharacterwizardmain.o obj\Release\main.o -s -lwxmsw26u -lgdi32 D:\CodeBlocks\sqlite3\libsqlite3.a D:\CodeBlocks\wx263\databaselayer\databaselayer\lib\libdatabaselayer_sqlite.a -mwindows
here is the resulting issues
D:\CodeBlocks\wx263\databaselayer\databaselayer\lib\libdatabaselayer_sqlite.a(databaselayer_sqlite_lib_SqliteDatabaseLayer.o)(.text+0xa5):SqliteDatabaseLayer.cpp: undefined reference to `wxCSConv::wxCSConv(wchar_t const*)'
D:\CodeBlocks\wx263\databaselayer\databaselayer\lib\libdatabaselayer_sqlite.a(databaselayer_sqlite_lib_SqliteDatabaseLayer.o)(.text+0xd3):SqliteDatabaseLayer.cpp: undefined reference to `wxCSConv::~wxCSConv()'
D:\CodeBlocks\wx263\databaselayer\databaselayer\lib\libdatabaselayer_sqlite.a(databaselayer_sqlite_lib_SqliteDatabaseLayer.o)(.text+0x10d):SqliteDatabaseLayer.cpp: undefined reference to `wxCSConv::~wxCSConv()'
D:\CodeBlocks\wx263\databaselayer\databaselayer\lib\libdatabaselayer_sqlite.a(databaselayer_sqlite_lib_SqliteDatabaseLayer.o)(.text+0x1e5):SqliteDatabaseLayer.cpp: undefined reference to `wxCSConv::wxCSConv(wchar_t const*)'
D:\CodeBlocks\wx263\databaselayer\databaselayer\lib\libdatabaselayer_sqlite.a(databaselayer_sqlite_lib_SqliteDatabaseLayer.o)(.text+0x213):SqliteDatabaseLayer.cpp: undefined reference to `wxCSConv::~wxCSConv()'
D:\CodeBlocks\wx263\databaselayer\databaselayer\lib\libdatabaselayer_sqlite.a(databaselayer_sqlite_lib_SqliteDatabaseLayer.o)(.text+0x24d):SqliteDatabaseLayer.cpp: undefined reference to `wxCSConv::~wxCSConv()'
D:\CodeBlocks\wx263\databaselayer\databaselayer\lib\libdatabaselayer_sqlite.a(databaselayer_sqlite_lib_SqliteDatabaseLayer.o)(.text+0x31a):SqliteDatabaseLayer.cpp: undefined reference to `sqlite3_open'
D:\CodeBlocks\wx263\databaselayer\databaselayer\lib\libdatabaselayer_sqlite.a(databaselayer_sqlite_lib_SqliteDatabaseLayer.o)(.text+0x35a):SqliteDatabaseLayer.cpp: undefined reference to `sqlite3_errcode'
D:\CodeBlocks\wx263\databaselayer\databaselayer\lib\libdatabaselayer_sqlite.a(databaselayer_sqlite_lib_SqliteDatabaseLayer.o)(.text+0x37f):SqliteDatabaseLayer.cpp: undefined reference to `sqlite3_errmsg'
and so on....
I followed the steps above, and I have a static library for sqlite and even for sqlitedatabaselayer. The dll for sqlite3 is located in the same directory as my executable. The .h file and .a files are copied into the MinGW directories. The static libraries are linked and I have even added some directory information to the build options.
Directories/Compiler: D:\CodeBlocks\wx263\include, D:\CodeBlocks\wx263\lib\gcc_dll\mswu, D:\CodeBlocks\wx263\contrib\include,
D:\CodeBlocks\wx263\databaselayer\databaselayer\include,
D:\CodeBlocks\sqlite3\src,
D:\CodeBlocks\wx263\databaselayer\databaselayer\src
Directories/Linker: D:\CodeBlocks\wx263\lib\gcc_dll
Does anyone know what i could be missing? Obviously sqlitedatabaselayer.cpp is calling objects that I thought should be a part of libdatabaselayer_sqlite.a library. Any ideas?
Thanks!