在 vs2008 中调试SQLite出现灰色代码问题

最近在研究SQLite的源码 ,想通过单步调试来先走一遍。结果调试过程中出现跳转错误 。在百度,google找了很多天解决办法都未果 ,幸运的是在年前最后一天上班的时候,找到了 "mz02005"  写的关于vs2008调试SQLite的文章 。帮我解决了大问题哦 。因为自己不太懂awk工具 ,所以按照他说的方式我无从下手 ,后来自己用另外一种方式解决了问题。
    
     在windows下建一个项目 ,把相关的文件加入到这个工程中 。去掉无实际意义的test*.*文件 。
     由于缺少几个文件,这就是我在windows下搞不下去的原因. 至于parse.c 和parse.h 到好办 ,把parse.y 这个文件 ,通过lemon.c 和 lempar.c 这两个文件生成的lemon编译一下就出来了  。再看看awk,真心不知道是个什么玩意 ,百度了下 ,觉得自己不是很懂,我就是想要它生成的那个文件嘛 ,没啥心思去研究这个东西,根据 "mz02005"的介绍 ,看了看main.mk文件,里面的编译命令比较齐全 。就把这个压缩包放到了linux下 ,估计他是可以再linux下编译通过的 。就大胆一试了 。
  注意 :一般的README文件还是很有意义滴 。我就从里面找到了这么一段:
For example:

    tar xzf sqlite.tar.gz    ;#  Unpack the source tree into "sqlite"
    mkdir bld                ;#  Build will occur in a sibling directory
    cd bld                   ;#  Change to the build directory
    ../sqlite/configure      ;#  Run the configure script
    make                     ;#  Run the makefile.
    make install             ;#  (Optional) Install the build products

然后按照这么个步骤,做到了倒数第三步,发现,我要的文件都有了 :parse.h   ,parse.c  ,opcodes.c ,opcodes.h  。

然后把这些个文件放进工程里面就可以了 。

运行发现会有错误 ,宏定义问题 ,在项目->属性->C/C++->预处理器->预处理器定义 中添加对应的宏 SQLITE_TESTCTRL_PGHDRSZ  即可。
之后你运行还是会报一个头文件找不到 ,tcl.h 。CTRL+F 发现整个项目就两个地方用到了它 ,其中一个还是在宏编译命令里面 ,这个应该是涉及到了某个扩展的功能 ,我就大胆的把tclsqlite.c 给移除到工程之外了(这个确实有点不择手段的感觉),但事实证明,删掉它影响不大 。
剩下的事情,你也懂了 ,就不说了 。

这个纯粹只是解决了我目前的问题 ,有太多不懂的地方,如果有人也有兴趣研究SQLite的话 ,不防一起讨论下哦 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值