最近在弄Sqlite3 中文字符的事情,寫下這一系列的博客,記錄一下
首先: 我的環境是 redhat6.5 sqlite 3.6.20
之前已經拿到了sqlite的動態庫文件:
libsqlite3.so
libsqlite3.so.0
libsqlite3.so.0.8.6
和sqlite3.h 頭文件
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
int main(int argc, char**argv)
{
sqlite3 *db=NULL;
int len;
len = sqlite3_open("student.db",&db);
if( len )
{
fprintf(stderr, "Can't open database\n");
sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
else printf("You have opened a sqlite3 database named user successfully!\n");
sqlite3_close(db);
return 0;
}
編程基本沒有大問題,但是在編譯的時候,我遇到了問題,找不到sqlite3.h 的頭文件,尷尬了
我的目錄結構是
lib----libsqlite3.so
----libsqlite3.so.0
----libsqlite3.so.0.8.6
src----sqlite.c
include----sqlite3.h
首先,我的動態庫不是放在系統默認的動態庫目錄下,需要手動鏈接動態庫-L../lib 指定動態庫的路徑,
第二個就是手動指定頭文件的路徑 -I../include/
所以 整個的編譯語句就是
gcc te.c -I../include/ -L../lib -lsqlite3