2012-07-18 27 views
0

我想在Ubuntu上使用SQLite和C++。我選擇嘗試https://www.sqlite.org/quickstart.html的示例。但運行c++ test.cpp -o test,當我得到的錯誤:如何在Ubuntu上使用SQLite與c + +? (未定義參考錯誤)

/tmp/ccTwwjKw.o: In function `main': 
test.cpp:(.text+0xf1): undefined reference to `sqlite3_open' 
test.cpp:(.text+0x106): undefined reference to `sqlite3_errmsg' 
test.cpp:(.text+0x12e): undefined reference to `sqlite3_close' 
test.cpp:(.text+0x15d): undefined reference to `sqlite3_exec' 
test.cpp:(.text+0x18f): undefined reference to `sqlite3_free' 
test.cpp:(.text+0x19b): undefined reference to `sqlite3_close' 
collect2: ld gab 1 als Ende-Status zurück 

我認爲這個問題是因爲這裏是相同的:Sqlite undefined reference to `sqlite3_open' error in Netbeans C++ on Ubuntu, Integrating SQLite into Netbeans C++ Ubuntu。但是我沒有makefile,也沒有使用netbeans。

+0

我在這裏找到了答案:http://stackoverflow.com/questions/9090639。 – pirad 2012-07-18 12:42:23

回答

2

這是一個鏈接器錯誤,並且您沒有鏈接到任何庫。使用-llibname鏈接到正確的庫,其中libname是庫的名稱,lib從頭開始刪除。例如,如果libname是libsqlite3.so,則在編譯步驟結束時嘗試添加。當然,如果使用-L/path/to/lib選項的非標準位置,則還需要爲該庫提供路徑,顯然,您需要首先安裝相關庫。

+0

我不確定,但我認爲sqlite的lib是-libsqlite或-libsqlite3。 – petermlm 2012-07-18 12:40:20

+0

是的,謝謝。這就是我在上面鏈接的線索。命令結尾的'-lsqlite3'完成了魔術。 – pirad 2012-07-18 12:45:15

+0

更新了具體的名稱。 – mathematician1975 2012-07-18 12:45:51