设为首页 加入收藏

TOP

SQLite编译错误以及解决
2015-11-21 01:27:17 来源: 作者: 【 】 浏览:0
Tags:SQLite 编译 错误 以及 解决
1)fts2 has a designflaw and has been deprecated
?
2)fts1 has a designflaw and has been deprecated
?
解决方案:
?
解析:FTS1和FTS2都有设计的缺陷,现在已经被废弃,目前已经提供了FTS3或者FTS4,这些作为全文搜索的模块,弥补了以前的FTS1的不足。如果确定不会使用到全文搜索,可以直接使用SQLITE_CORE,禁用。将SQLITE_CORE添加到编译选项。
?
VS 的基本设置:属性》》C/C++》》预处理器》》预处理定义
?
3)Cannot open includefile: 'unicode/utypes.h': No such file or directory?
?
该问题主要是调用了FTS1或者FTS2引起的,通过禁用FTS1和FTS2顺利编译通过。
?
FTS1有一个设计的缺陷,会导致数据库错误(databasecorruption).强烈推荐废弃该模块,改用fts3或者更高的模块。如果你相信fts1的使用是安全的,可以通过添加DSQLITE_ENABLE_BROKEN_FTS1=1到编译选项。
?
FTS1模块将会作为一个扩展模块而被编译(当SQLITE_CORE没有被定义的情况下)。
?
另外如果SQLITE_ENABLE_FTS1被定义,FTS1也会被编译进SQLite内核。
?
4)Error: no module:rtree
?
默认情况下sqlite3.exe的控制台程序是没有携带Rtree模块的,如果需要启用该模块,需要调用预编译定义:SQLITE_ENABLE_RTREE,然后通过shell.c文件的main重新生成程序。
?
5)控制台程序
?
建立空的控制台,然后导入sqlite 源码,编译出现如下的错误:
error LNK2019: 无法解析的外部符号_WinMain@16,该符号在函数 ___tmainCR...
?
第一步:在C++/预编译中,添加:SQLITE_ENABLE_RTREE 参数支持rtree
?
第二步:如果是控制台程序:
?
1.菜单中选择Project->Properties, 弹出Property Pages窗口
?
2.在左边栏中依次选择:ConfigurationProperties->C/C++->Preprocessor,然后在右边栏的PreprocessorDefinitions对应的项中删除_WINDOWS, 添加_CONSOLE.
?
3.在左边栏中依次选择:ConfigurationProperties->Linker->System,然后在右边栏的SubSystem对应的项改为CONSOLE(/SUBSYSTEM:CONSOLE)
6)unexpected end offile while looking for precompiled header. Did you forget to add '#include"stdafx.h"' to your source?
?
sqlite源码不能够调用预编译处理,因为sqlite的源码是纯C语言,无法获得VC++预编译的好处。
?
解决:属性》》C/C++》》预编译头》》创建、使用预编译头(不使用预编译头)
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQLite Autoincrement(自动递增) 下一篇范例创建ThinkPad​数据库

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: