from: http://baike.so.com/doc/1529694.html

由于Linux下侧重使用命令,没有win的操作容易上手,所以在测试C操作SQLITE时会比较容易出现错误,给大家做一个简单的程序进行测试,演示怎么应用。打开vi编辑器,输入如下代码:

  1. /*c代码*/
  2. #include <stdio.h>
  3. #include <sqlite3.h>
  4. int main( void )
  5. {
  6. sqlite3 *db=NULL;
  7. char *zErrMsg = 0;
  8. int rc;
  9. //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
  10. rc = sqlite3_open("zieckey.db", &db);
  11. if( rc )
  12. {
  13. fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
  14. sqlite3_close(db);
  15. exit(1);
  16. }
  17. else printf("You have opened a sqlite3 database named zieckey.db successfully!\nCongratulations! Have fun ! ^-^ \n");
  18. sqlite3_close(db); //关闭数据库
  19. return 0;
  20. }
   /*c代码*/
  #include <stdio.h>
  #include <sqlite3.h>   int main( void )   {
  sqlite3 *db=NULL;
  char *zErrMsg = 0;
  int rc;   //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
  rc = sqlite3_open("zieckey.db", &db);
  if( rc )
  {
  fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
  sqlite3_close(db);
  exit(1);
  }
  else printf("You have opened a sqlite3 database named zieckey.db successfully!\nCongratulations! Have fun ! ^-^ \n");
  sqlite3_close(db); //关闭数据库
  return 0;
  }

  退出,保存。(代码输入完成后,按下 Esc 键,然后输入: :wq ,回车就好拉)

  好拉,现在编译:[root@localhost temp]# gcc opendbsqlite.c -o db.out

  或者遇到这样的问题:

  [root@localhost temp]# gcc opendbsqlite.c -o db.out

  opendbsqlite.c:11:21: sqlite3.h: 没有那个文件或目录

  opendbsqlite.c: In function `main':

  opendbsqlite.c:19: `sqlite3' undeclared (first use in this function)

  opendbsqlite.c:19: (Each undeclared identifier is reported only once

  opendbsqlite.c:19: for each function it appears in.)

  opendbsqlite.c:19: `db' undeclared (first use in this function)

  这是由于没有找到头文件的原因。

  也许会碰到类似这样的问题:

  [root@localhost temp]# gcc opendbsqlite.c -o db.out

  /tmp/ccTkItnN.o(.text+0x2b): In function `main':

  : undefined reference to `sqlite3_open'

  /tmp/ccTkItnN.o(.text+0x45): In function `main':

  : undefined reference to `sqlite3_errmsg'

  /tmp/ccTkItnN.o(.text+0x67): In function `main':

  : undefined reference to `sqlite3_close'

  /tmp/ccTkItnN.o(.text+0x8f): In function `main':

  : undefined reference to `sqlite3_close'

  collect2: ld returned 1 exit status

  这是个没有找到库文件的问题。

  [root@localhost temp]# gcc opendbsqlite.c -o db.out -lsqlite3 -L/usr/local/sqlite3/lib -I/usr/local/sqlite3/include

  这样编译应该就可以了

  如果还是有错误的话请搜索:(一)Sqlite数据库连接。有更详细的说明解释

使用linux下的C操作SQLLITE的更多相关文章

  1. linux下的shell操作mysql

    (1)MySQL的启动 重启了一次服务器后,使用> mysql -u root -p登陆是出现下面的错误: ERROR 2002 (HY000): Can't connect to local ...

  2. linux下的文本操作之 文本查找——grep

    摘要:你有没有这样的应用场景:调试一个程序,出现debug的提示信息,现在你需要定位是哪个文件包含了这个debug信息,也就是说,你需要在一个目录下的多个文件(可能包含子目录)中查找某个字符串的位置: ...

  3. linux下通过sysfs操作GPIO

    linux下通过sysfs操作GPIO 在嵌入式设备中对GPIO的操作是最基本的操作.一般的做法是写一个单独驱动程序,网上大多数的例子都是这样的.其实linux下面有一个通用的GPIO操作接口,那就是 ...

  4. Linux下常用的操作

    Linux下常用的操作 文件定位 locate filename 有些版本的linux会出现 -bash: locate: command not found错误,不要慌,安装一下mlocate包就好 ...

  5. Linux下mysql相关操作

    Linux下mysql相关操作 1.创建MySQL mysql -u root -p create user 'username'@'%' identified by 'password'; %可以选 ...

  6. Linux下 svn相关操作

    Linux下 svn相关操作 一.首先看看svn安装的位置: 命令: find / -name svn /var/svn :表示安装目录 /user/bin/svn :表示命令目录 可以看到的是svn ...

  7. linux下的一些操作(持续更新)

    文件操作 创建文件夹: mkdir 文件夹名称 查看当前目录的文件夹及文件:ls 参看当前文件夹下的所有文件及信息: ls -l 删除空文件夹:rmdir 文件夹名称 删除非空文件夹:rm rf 文件 ...

  8. linux下使用vi操作

    ESC : 进入命令模式 linux下使用vi后,怎样跳转到文件结尾 pagedown键连续按 虽然我也这么用,但还是太笨了.问了高手,方法是按shift+g,另外,到文件开头是gg.   linux ...

  9. 在linux下安装并操作tomcat

    1.安装tomcat1).下载tomcat从官网http://tomcat.apache.org/下载tomcat,保存在/home目录下.root@ubuntu:/home/ubuntu/Downl ...

随机推荐

  1. HDU4647_Another Graph Game

    有趣的博弈题. 关键在于把比边权的平分到两边的点权上面,然后点权排序,每次从大的开始拿就可以了. #include <iostream> #include <cstdio> # ...

  2. bzoj3663/4660CrazyRabbit && bzoj4206最大团

    题意 给出平面上N个点的坐标,和一个半径为R的圆心在原点的圆.对于两个点,它们之间有连边,当且仅当它们的连线与圆不相交.求此图的最大团. 点数<=2000,坐标的绝对值和半径<=5000. ...

  3. debug - vue中通过ajax获取数据时,如何避免绑定的数据中出现property of undefined错误

    因为获取服务器是异步的,所以 vue 先绑定数据. 如果 ??? 是通过 ajax 异步获取的,在获取之前,???是未定义的.此时在外面的标签上添加一个 v-if="???" 可以 ...

  4. Qt 多线程同步与通信

    Qt 多线程同步与通信 1 多线程同步 Qt提供了以下几个类来完成这一点:QMutex.QMutexLocker.QSemphore.QWaitCondition. 当然可能还包含QReadWrite ...

  5. 【刷题】BZOJ 1453 [Wc]Dface双面棋盘

    Description Input Output Sample Input Sample Output HINT Solution 不强制在线的动态图问题,那就LCT了 类似二分图那道题目 对于四个方 ...

  6. NOIP模拟

    1.要选一个{1,2,...n}的子集使得假如a和b在所选集合里且(a+b)/2∈{1,2,...n}那么(a+b)/2也在所选集合里 f[i]=2*f[i-1]-f[i-2]+g[i] g[n]:选 ...

  7. Notes of fwt

    昨天考试由于不会fwt而爆炸,所以今天搞了一下fwt……话说这玩意的普及程度已经很高了.fwt,快速沃尔什变换,可以用于位运算卷积的优化,是一种线性变换,所以就会有许多好的性质(eg:可以直接模,可以 ...

  8. Java高级应用之泛型与反射20170627

    /*************************************************************************************************** ...

  9. 服务器上的 Git - 生成 SSH 公钥

    http://git-scm.com/book/zh/ch4-3.html 生成 SSH 公钥 如前所述,许多 Git 服务器都使用 SSH 公钥进行认证. 为了向 Git 服务器提供 SSH 公钥, ...

  10. atom插件安装引发的nodejs和npm安装血案

    最近在写前端网页,学习就要从高大上的地方开始,于是我打算装一个atom编辑器. 本来就是由github客户端的,再装个atom也算是配套了吧,其实本白也是蛮费心思的,技术不怎么地,什么神器都再努力地使 ...