加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

以适当的方式为Windows构建sqlite

发布时间:2020-12-14 02:21:59 所属栏目:Windows 来源:网络整理
导读:我的问题是无论我如何构建sqlite – 我的二进制文件比它慢得多 在sqlite下载页面上预编译的一个(大约3-6次取决于 查询). 我正在使用来自合并源的sqlite3.h和sqlite3.c: http://www.sqlite.org/sqlite-amalgamation-3070602.zip 我在编译sqlite时添加了以下
我的问题是无论我如何构建sqlite – 我的二进制文件比它慢得多
在sqlite下载页面上预编译的一个(大约3-6次取决于
查询).

我正在使用来自合并源的sqlite3.h和sqlite3.c:

http://www.sqlite.org/sqlite-amalgamation-3070602.zip

我在编译sqlite时添加了以下标志:

gcc
-s -O4 -I. -fomit-frame-pointer
-DNDEBUG
-DSQLITE_OS_WIN=1
-DSQLITE_HAVE_READLINE=0
-DSQLITE_THREADSAFE=1
-DSQLITE_TEMP_STORE=2
-DSQLITE_ENABLE_RTREE
-DSQLITE_ENABLE_FTS3
-DSQLITE_OMIT_COMPILEOPTION_DIAGS
-DSQLITE_ENABLE_COLUMN_METADATA
-DNO_TCL

我使用MINGW和MSVS 2010构建了它.

有没有人知道如何构建sqlite以获得与之相同的二进制文件
下载页面?

任何帮助,将不胜感激.

解决方法

按照 SQLite wiki : How to compile上的指南进行操作,检查Make传递给编译器的参数是什么.我的第一个嫌疑人是-O4,因为GCC理解的最高级别是-O3,甚至这通常比-O2或-Os更差(因为小尺寸==没有CPU缓存未命中,-O3非常臃肿二进制).

虽然我可以看到方法不同:Build On Windows Without Tcl使用-O2,但是#931票使用该死的-O4“Gentoo Ricer Mode”.无论哪种方式,如果没有指定目标体系结构,那些优化开关并不值得:try -march = core2或-march = native用于自动检测,但请记住,此类代码不适用于早期的CPU. -march = nocona可以处理比Pentium 4更新的任何东西,并且仍然为编译器提供了很多有用优化的空间.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读