首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以适当的方式构建sqlite for windows

以适当的方式构建sqlite for windows
EN

Stack Overflow用户
提问于 2011-04-18 21:50:30
回答 1查看 2.4K关注 0票数 6

我的问题是无论我如何构建sqlite -我的二进制文件比sqlite下载页面上预编译的要慢得多(根据查询的不同,大约是3-6倍)。

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

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

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

代码语言:javascript
复制
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和MSVS2010构建了它。

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

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2011-06-29 04:27:08

遵循SQLite wiki : How to compile上的指南,检查Make传递给编译器的参数是什么。我的第一个怀疑对象是-O4,因为GCC理解的最高级别是-O3,甚至这通常比-O2-Os更糟糕(因为小尺寸的==没有CPU缓存未命中,并且-O3非常严重地膨胀了二进制文件)。

虽然我可以看到不同的方法:Build On Windows Without Tcl使用-O2,但ticket #931使用该死的-O4 "Gentoo Ricer模式“。无论哪种方式,如果不指定目标体系结构,这些优化开关都没有多大价值:尝试使用-march=core2-march=native进行自动检测,但请记住,此类代码不能在较早的CPU上运行。-march=nocona可以在比奔腾4更新的任何东西上工作,并且仍然为编译器提供了很多有用的优化空间。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5703874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档