2017-01-04 3 views
0

Ich weiß, es gab Fragen, die zuvor zu diesem Problem gestellt wurden, aber keine scheint ein Licht auf mein Problem zu werfen, das ist, ich versuche, eine C - Anwendung zu kompilieren und auf SQLite aus dem Code (wie zugreifen) pro Test-App) mit Eclips als Kompilier- und Debug-Umgebung.undefined Verweis auf sqlite_open

Ich weiß, dass auf die .h-Dateien zugegriffen wird. Der Code hat so viele Zeilen mit Iostream auskommentiert, wie ich versucht habe, dies auch als C++ App zu kompilieren.

Ich bekomme einen Fehler für jede von 2 der SQL-API.

Die eigentliche Frage ist, muss ich festlegen und wie setze ich eine Abhängigkeit in Eclipse, damit die API zu lösen. Dank

der Code

#include <sqlite3.h> 

int main() 
{ 
    int RetVal; 
    RetVal = OpenDB(); 
    return RetVal; 
} 

int OpenDB() 
{ 
    sqlite3 *db;   // database connection 
    int rc;    // return code 
    char *errmsg;  // pointer to an error string 

    /* 
     * open SQLite database file test.db 
     * use ":memory:" to use an in-memory database 
     */ 
    rc = sqlite3_open(":memory:", &db); //fails on this line 
    if (rc != SQLITE_OK) 
     { 
     goto out; 
     } 


/* use the database... */ 

out: 
/* 
* close SQLite database 
*/ 
sqlite3_close(db); //fails on this line 
return 0; 
} 
+3

Mögliche Duplikat [Was Fehler ein nicht definierter Referenz/nicht aufgelöstes externes Symbol ist und wie ich tun repariere es?] (http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-symbol-error-and-how-do-i-fix) –

+1

Sag Eclipse zu erzählen der Compiler, um dem Linker mitzuteilen, dass er die entsprechende Bibliothek verknüpfen soll. – alk

+1

Angenommen CDT, für das (etwas veraltete) Juno-Release ist es unter "Projekt-> Eigenschaften-> C/C++ Build-> Einstellungen-> GCC Linker-> Bibliotheken" – alk

Antwort

0

Sie benötigen die sqlite3 Bibliothek zusammen mit Ihrem Programm zu verknüpfen:

gcc main.c -lsqlite3