1. 程式人生 > >在mipsel-linux平臺上的編譯應用SQLite-3.5.9

在mipsel-linux平臺上的編譯應用SQLite-3.5.9

: "NULL");
    }
    printf("\n");
    return 0;
}

int main(int argc, char **argv)
{
    sqlite3        *db;
    char           *zErrMsg = 0;
    int             rc;

    if (argc != 3) {
          fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
          exit(1);
    }
    rc = sqlite3_open(argv[1], &db);
    if (rc) {
          fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
          sqlite3_close(db);
          exit(1);
    }
    rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
    if (rc != SQLITE_OK) {
          fprintf(stderr, "SQL error: %s\n", zErrMsg);
          sqlite3_free(zErrMsg);
    }
    sqlite3_close(db);
    return 0;
}

9、編譯test.c檔案

# mipsel-linux-gcc  -I/work/dist-sqlite3/include  -L/work/dist-sqlite3/lib  -o test test.c  -lsqlite3
有兩個針對 exit(1)的警告,未研究什麼原因。不過仍生成了可執行檔案。
三、在開發板上使用sqlite

1、將在Redhat上交叉編譯的/dist-sqlite3目錄拷到開發板中

[/mnt/yaffs] mount -t nfs -o nolock 192.168.0.108:/sqlite  /host

如果出現連線超時等問題(我在除錯過程中出現此問題,主要是因為linux 在 VMWare虛擬機器上),把所有不用的網絡卡(含虛擬網絡卡)和多餘的IP地址禁用和刪除。

2、設定環境變數

[/host]export   LD_LIBRARY_PATH=/host /lib:$LD_LIBRARY_PATH

[/host]export   PATH=/host /bin/:$PATH

建議寫一個export.sh

[/mnt/yaffs/sqlite3.5.9]cat >export.sh

#!/bin/sh

export LD_LIBRARY_PATH=/host/lib:$LD_LIBRARY_PATH

export PATH=/host/bin/:$PATH

^C(ctrl+C)結束檔案

再執行export.sh輸出環境變數

[/mnt/yaffs/sqlite3.5.9].   ./export.sh(.空格 +./export.sh)

這時可以就可以在開發板上執行sqlite3了

不同的是,在聚芯開發板上,必須把要執行的命令寫在export.sh 指令碼中,也就是export在執行完指令碼後就立即失效了,此時再執行命令跟沒有執行指令碼一樣。



[/host]sqlite3
SQLite version 3.5.9
Enter ".help" for instructions
sqlite>
sqlite> create table tbl1(one varchar(10), two smallint);
    sqlite> insert into tbl1 values('hello!',10);
    sqlite> insert into tbl1 values('goodbye', 20);
    sqlite> select * from tbl1;
    hello!|10
    goodbye|20
    sqlite>

用.exit退出sqlite3。

3、執行測試程式

將test放到dist-sqlite3目錄下。至此test程式已經可以在開發板中執行。

[/host]./test

Usage: test DATABASE SQL-STATEMENT

[/mnt/yaffs]


本文來自ChinaUnix部落格,如果檢視原文請點: