SQLite编译错误以及解决

SQLite编译错误以及解决,第1张

概述1)fts2 has a designflaw and has been deprecated 2)fts1 has a designflaw and has been deprecated 解决方案: 解析:FTS1和FTS2都有设计的缺陷,现在已经被废弃,目前已经提供了FTS3或者FTS4,这些作为全文搜索的模块,弥补了以前的FTS1的不足。如果确定不会使用到全文搜索,可以直接使用SQLITE

1fts2 has a designflaw and has been deprecated

2fts1 has a designflaw and has been deprecated

解决方案:

解析:FTS1FTS2都有设计的缺陷,现在已经被废弃,目前已经提供了FTS3或者FTS4,这些作为全文搜索的模块,弥补了以前的FTS1的不足。如果确定不会使用到全文搜索,可以直接使用sqlITE_CORE,禁用。将sqlITE_CORE添加到编译选项。

VS 的基本设置:属性》》C/C++》》预处理器》》预处理定义

3Cannot open includefile: 'unicode/utypes.h': No such file or directory

该问题主要是调用了FTS1或者FTS2引起的,通过禁用FTS1FTS2顺利编译通过。

FTS1有一个设计的缺陷,会导致数据库错误(databasecorruption.强烈推荐废弃该模块,改用fts3或者更高的模块。如果你相信fts1的使用是安全的,可以通过添加DsqlITE_ENABLE_broKEN_FTS1=1到编译选项。

FTS1模块将会作为一个扩展模块而被编译(当sqlITE_CORE没有被定义的情况下)。

另外如果sqlITE_ENABLE_FTS1被定义,FTS1也会被编译进sqlite内核。

4Error: 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,d出Property Pages窗口

2.在左边栏中依次选择:ConfigurationPropertIEs->C/C++->Preprocessor,然后在右边栏的PreprocessorDeFinitions对应的项中删除_windows,添加_CONSolE.

3.在左边栏中依次选择:ConfigurationPropertIEs->linker->System,然后在右边栏的SubSystem对应的项改为CONSolE(/SUBSYstem:CONSolE)

6unexpected end offile while looking for @R_363_3013@ header. DID you forget to add '#include"stdafx.h"' to your source?

sqlite源码不能够调用预编译处理,因为sqlite的源码是纯C语言,无法获得VC++预编译的好处。

解决:属性》》C/C++》》预编译头》》创建、使用预编译头(不使用预编译头)

总结

以上是内存溢出为你收集整理的SQLite编译错误以及解决全部内容,希望文章能够帮你解决SQLite编译错误以及解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1179299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存