我剛剛開始學習編程,剛開始學習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
有什麼想法?
你可以嘗試指定'-L /位置/的/ library'和/或'-l:sqlite3.dll'像http://stackoverflow.com/a/281253/5781248或'dlltool -U -d sqlite3.def -l libsqlite3.dll.a' –