2016-01-22 42 views
1

我剛剛開始學習編程,剛開始學習C.我想在c程序中使用SQLite3,但是很難設置庫。我正在使用舊的時尚命令行界面來編譯和運行我的程序。我正在使用gcc。我也嘗試過使用CodeBlocks,並花費了大量的時間研究如何讓這個工作,但沒有成功! 我發現了一個C and SQLite3 tutorial,但它並沒有解釋用GCC compliler設置SQLite庫這個簡單的概念。我還發現了另一個教程,但它也沒有解釋如何使用GCC編譯器設置庫。在C程序中使用SQLite3 - 簡單的設置問題

到目前爲止,我有一個名爲「testsql.c」簡單的程序,這是我所希望得到的工作:

#include <sqlite3.h> 
#include <stdio.h> 

int main() { 

printf("%s\n", sqlite3_libversion()); 

return 0; 
} 

我使用下面的命令的gcc來編譯程序:

C:\Users\qwa\Desktop\testsql>gcc testsql.c -o testsql -lsqlite3 

輸出始終是這個錯誤:

c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lsqlite3 
collect2.exe: error: ld returned 1 exit status 

現在,我一直在SQLite's download webpage一第二下載以下文件,並試圖將它們MinGW的\ BIN下和MinGW \包括:

The Amalgamation zip file: 
shell.c 
sqlite3.c 
sqlite3.h 
sqlite3ext.h 

我也下載了DLL zip文件,希望我能想出如何將其與代碼塊鏈接但沒有成功。這zip文件中附帶這些文件:

sqlite3.def 
sqlite3.dll 

我想我的問題是,我只是不知道如何使SQLite3的庫和gcc編譯器之間的連接。我覺得這是這樣一個noob問題,但我一直在努力:(

任何幫助將非常感激!總之,我只想要一個SQLite數據庫連接設置一個簡單的C程序。

編輯:基於第一評論,我只是用下面的命令:

gcc testsql.c -o testsql -LC:\sqlite3\sqlite3.dll 

和我得到的結果是:

C:\Users\qwa\AppData\Local\Temp\ccMjAu3h.o:testsql.c:(.text+0xf):undefined reference to `sqlite3_libversion' 
collect2.exe: error: ld returned 1 exit status 

有什麼想法?

+1

你可以嘗試指定'-L /位置/的/ library'和/或'-l:sqlite3.dll'像http://stackoverflow.com/a/281253/5781248或'dlltool -U -d sqlite3.def -l libsqlite3.dll.a' –

回答

0

使用SQLite的最簡單的方法是將其直接編譯到應用程序:

gcc testsql.c sqlite3.c -o testsql 
+0

omg非常感謝你!!!!!我所要做的只是在編譯時添加「sqlite3.c」 –