生成vs2010可调试的sqlite3.lib

来源:互联网 发布:建筑软件上市公司 编辑:程序博客网 时间:2024/06/05 19:50
目前看到的大部分sqlite3.lib的生成方式,根据步骤所生成的库文件,无法正确调试,设置断点进去之后只能进到宏定义部分。本文目标是生成可正常调试的sqlite3.lib文件

参考博文:http://blog.csdn.net/mz02005/article/details/7095444

在http://www.sqlite.com/download.html上下载最新的的源代码格式:sqlite-src-3210000.zip
解压该包,新建vs2010项目,工程设置为静态库,无预编译头文件支持

将解压包中的src目录下文件包含到工程中,在工程中remove *test*文件, remove tclsqlite.c文件
此时编译应提示缺少头文件
打开main.mk发现文件编译需要文件:sqlite3.h parse.c opcodes.c 可以wordhash.h 
最上方参考博文提出的方式是新建vs工程,参考main.mk中的生成命令,配置项目,声称相关文件
对vs2010不是特别熟悉,所以选择根据mainmk在ubuntu上编译出这几个文件
步骤:
1、复制解压出来的sqlite-src-3210000文件夹到ubuntu系统中
2、打开终端,进入sqlite-src-3210000文件夹,mkdir build,然后cd build
3、生成sqlite3.h:
cp ../src/sqlite.h .
cp ../maifest .
mksourceid ../VERSION ../ext/rtree/sqlite3rtree.h
tclsh ../tool/mksqlite3h.tcl ../ >sqlite3.h

4、生成lemon
cp ../tool/lempar.c .
gcc -g -O2 lemon ../tool/lemon.c

5、生成parse.c
cp ../src/parse.y .
rm -f parsh.h
./lemon -s   -DSQLITE_ENABLE_FOO=1 -DSQLITE_OMIT_FOO=1 parse.y
mv parse.h parse.h.temp
tclsh ../tool/addopcodes.tcl parse.h.temp > parse.h

6、生成opcodes.c
cat parse.h ../src/vdbe.c | tclsh ../tool/mkopcodes.tcl >opcodes.h
tclsh ../tool/mkopcodec.tcl opcodes.h >opcodes.c

7、生成keywordhash.h
gcc -g -O2 -o mkkeywordhash -DSQLITE_ENABLE_FOO=1 -DSQLITE_OMIT_FOO=1  ../tool/mkkeywordhash.c
./mkkeywordhash > keywordhash.h

以上生成过程如果出现报错,请参考main.mk文件进行比较,以main.mk中生成方式为准
 将以上生成的文件加入到vs2010工程中,build,将生成可调试的sqlite3.lib
如有提示缺少文件,请添加相关文件
原创粉丝点击