Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Bart S.

Routinier

Dabei seit: 01.02.2003

Beiträge: 388

 

1 Zum Seitenanfang

Sonntag, 2. November 2008, 15:31

SQLite3 - Library kompilieren mit Code:Blocks (Windows)

Moin!
Ich möchte mir eine kleine Anwendung mit einer Datenbankanbindung in C schreiben.
Da ich nicht möchte, dass sich der Benutzer extra Software installieren muss um mein Programm zu benutzen, habe ich mich für SQLite entschieden.

Ich habe mir also ein SQLite Paket ausm Netz gezogen und die .h-Datei gefunden und eingebunden. Zum Kompilieren fehlt mir aber noch die Library, die ich aber in keinem Paket auf der offizielen Seite gefunden habe ?(. Dann habe ich mir den Sourcecode (sqlite-amalgamation-3_6_4) gezogen und versucht den zu kompilieren, was in einem Meer von Warnungen geendet hat.
Zum Beispiel:

Zitat

[...]\sqlite-amalgamation-3_6_4\sqlite3.c|10356|warning: 'sqlite3MemGetMemsys6' declared `static' but never defined


Kennt jemand ein funktionierendes Tutorial für Code:Blocks oder allgemein Windows oder kann mir eine kompilierte Library geben?

Gruß
Bart S.
 

silence

König

Dabei seit: 28.02.2003

Beiträge: 981

 

2 Zum Seitenanfang

Sonntag, 2. November 2008, 15:39

Die Warnungen im Release build kannst du ignorieren ( wenngleich nicht schön :) ), treten irgendwelche Fehler auf?
Aktuell nutze ich: Windows, Linux, MacOS X, Solaris...weil die Welt nicht nur S/W ist!
Blog
 

Bart S.

Routinier

Dabei seit: 01.02.2003

Beiträge: 388

 

3 Zum Seitenanfang

Sonntag, 2. November 2008, 15:54

Hallo,
nein Fehler meldet er nicht (Build finished: 0 errors, 31 warnings)

Wenn ich ein neues Project als Console application erstelle, dann bekomme ich nur eine Datei sqlite3.o. Wenn ich ein Projekt als Static library erstelle, dann bekomme ich eine sqlite3.a. Diese kann ich dann zwar unter Settings -> Compiler and debugger... -> Linker settings -> Link libraries hinzufügen, aber ich kann mein Programm dann trotzdem nicht kompilieren. Ist mein erster Versuch ne library zu kompilieren, also liegt der Fehler sicherlich bei mir :pinch: .
 

silence

König

Dabei seit: 28.02.2003

Beiträge: 981

 

4 Zum Seitenanfang

Sonntag, 2. November 2008, 17:02

Nun, ohne den Build log vom Hauptprogramm ( was ja nicht kompiliert ) kann ich nicht helfen :D
Aktuell nutze ich: Windows, Linux, MacOS X, Solaris...weil die Welt nicht nur S/W ist!
Blog
 

Bart S.

Routinier

Dabei seit: 01.02.2003

Beiträge: 388

 

5 Zum Seitenanfang

Sonntag, 2. November 2008, 19:05

Hier der Buildlog meines Programms:

Quellcode

1
2
3
4
5
6
7
8
9
10
||=== test, Debug ===|
obj\Debug\main.o||In function `list':|
[...]functions.h|39|undefined reference to `_sqlite_open'|
[...]functions.h|43|undefined reference to `_sqlite_exec'|
[...]functions.h|44|undefined reference to `_sqlite_exec'|
[...]functions.h|45|undefined reference to `_sqlite_exec'|
[...]functions.h|46|undefined reference to `_sqlite_exec'|
[...]functions.h|49|undefined reference to `_sqlite_exec'|
[...]functions.h|52|undefined reference to `_sqlite_close'|
||=== Build finished: 7 errors, 0 warnings ===|


wenn ich "#include <sqlite3.h>" noch zusätzlich in die function.h einfüge kommt:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
||=== test, Debug ===|
[...]\functions.h||In function `list':|
[...]\functions.h|40|warning: implicit declaration of function `sqlite_open'|
[...]\functions.h|40|warning: initialization makes pointer from integer without a cast|
[...]\functions.h|44|warning: implicit declaration of function `sqlite_exec'|
[...]\functions.h|53|warning: implicit declaration of function `sqlite_close'|
[...]\functions.h|55|warning: control reaches end of non-void function|
[...]\main.c||In function `main':|
[...]\main.c|22|warning: passing arg 1 of `help' from incompatible pointer type|
obj\Debug\main.o||In function `list':|
[...]\functions.h|40|undefined reference to `_sqlite_open'|
[...]\functions.h|44|undefined reference to `_sqlite_exec'|
[...]\functions.h|45|undefined reference to `_sqlite_exec'|
[...]\functions.h|46|undefined reference to `_sqlite_exec'|
[...]\functions.h|47|undefined reference to `_sqlite_exec'|
[...]\functions.h|50|undefined reference to `_sqlite_exec'|
[...]\functions.h|53|undefined reference to `_sqlite_close'|
||=== Build finished: 7 errors, 6 warnings ===|


und der Quelltext der Datei:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef FUNCTIONS_H_INCLUDED
#define FUNCTIONS_H_INCLUDED

//#include <sqlite3.h>


// -h
[...]

// - l


int list() {
  	char *datenbank = sqlite_open( "MeineDatenbank" , 0 , NULL);

	// Tabelle anlegen und füllen:
  sqlite_exec( datenbank , "create table test(number integer , eintrag varchar(50) , primary key(number));" , NULL , NULL , NULL);
  sqlite_exec( datenbank , "insert into test (number , eintrag) values (1 , 'Testeintrag');" , NULL , NULL , NULL);
  sqlite_exec( datenbank , "insert into test (number , eintrag) values (2 , 'Testeintrag 2');" , NULL , NULL , NULL);
  sqlite_exec( datenbank , "insert into test (number , eintrag) values (3 , 'Testeintrag 3');" , NULL , NULL , NULL);

  // Anfrage an Datenbank: Wir wollen alle Felder aus der Spalte "eintrag":
  sqlite_exec( datenbank , "select eintrag from test;" , NULL , NULL , NULL);

  // Das war`s, wir schließen die Datenbank:
  sqlite_close(datenbank);

}


#endif // FUNCTIONS_H_INCLUDED

Den Quellcode für die Datenbank habe ich im Internet gefunden und nur die Callback-Funktion zum testen entfernt.
 

silence

König

Dabei seit: 28.02.2003

Beiträge: 981

 

6 Zum Seitenanfang

Montag, 3. November 2008, 00:59

Nun, die Fehler besagen, das die Bibliothek nicht richtig gelinkt wird - d.h. du hast in deiner IDE/Makefile etwas falsch eingestellt.
Welchen Compiler verwendest du?
Aktuell nutze ich: Windows, Linux, MacOS X, Solaris...weil die Welt nicht nur S/W ist!
Blog
 

Bart S.

Routinier

Dabei seit: 01.02.2003

Beiträge: 388

 

7 Zum Seitenanfang

Montag, 3. November 2008, 18:18

Ich habe den GNU GCC Compiler. Der wurde bei Code::Blocks mitinstalliert.

Die lib hab ich unter den Linker settings hinzugefügt.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Bart S.« (6. November 2008, 08:28)