先为编译文件建立一个临时文件夹/alex/prefix/sqlite
解压源文件后后进入文件夹
./configure --host=arm-xilinx-linux-gnueabi--prefix=/alex/prefix/sqlite
make
make install
所有的库,头文件都可以在临时文件夹内找到,编译的时候注意包含路径
三、操作数据库
进入/alex/prefix/sqlite/bin运行
./sqlite3
即可进入数据库管理界面,这里可以新建数据库文件以及直接操作数据库。
下面是一个c调用sqlite的用例
#include #include "sqlite3.h"int main(int argc, char* argv[])
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
char *ip = "";
char *inputstring;
rc = sqlite3_open("ssdb", &db);
if (rc) {
//printf( "Can't open database: %s
", sqlite3_errmsg(db));
exit(0);
}
else {
//printf( "Opened database successfully
");
}
int nrow = 0, ncolumn = 0;
char **azResult; //指针数组存放结果
char *sql = "SELECT * FROM rule";
sqlite3_get_table(db, sql, &azResult, &nrow, &ncolumn, &zErrMsg);
int i = 0;
//printf( "row:%d column=%d
" , nrow , ncolumn );
//printf( "
The result of querying is :
" );
int count = 0;
printf("[");
for (i = 1; i <= nrow; i++)
{
count = i*ncolumn;
if (i != 1)
{
printf(",");
}
printf("{"inner_mac":"%s",", azResult[count++]);
printf(""inner_ip":"%s",", azResult[count++]);
printf(""inner_port":"%s",", azResult[count++]);
printf(""outer_mac_fake":"%s",", azResult[count++]);
printf(""outer_ip_fake":"%s",", azResult[count++]);
printf(""inner_mac_fake":"%s",", azResult[count++]);
printf(""inner_ip_fake":"%s",", azResult[count++]);
printf(""outer_mac":"%s",", azResult[count++]);
printf(""outer_ip":"%s",", azResult[count++]);
printf(""outer_port":"%s",", azResult[count++]);
printf(""remark":"%s",", azResult[count++]);
printf(""enable":"%s"}", azResult[count++]);
}
printf("]");
//释放掉 azResult 的内存空间
sqlite3_free_table(azResult);
sqlite3_close(db);
}