我正在尝试使用他们的合并源和“autoconf”从这里为 Windows 64 位编译 sqlite3:http ://www.sqlite.org/sqlite-amalgamation-3071201.zip
有人在我之前的问题上发布了Need 64-bit SQLite DLL for managed C# application一些预处理器定义了我需要使用:
- WIN64 NDBUG
- _视窗
- _USRDLL
- NO_TCL
- _CRT_SECURE_NO_DEPRECATE
- 线程安全=1
- TEMP_STORE=1
- SQLITE_MAX_EXPR_DEPTH=0
我四处寻找,试图找出如何真正做到这一点——我是这一切的新手。我记得 Linux 有一个“make”工具,所以我启动了我的 Ubuntu VM,安装了 make 和 gcc,然后在一个新目录中准备了源代码。
通过阅读其他帖子和 Internet 文章,我收集了一些提示,预处理器定义可以进入 Makefile,因此我在 Makefile.in 中的所有其他定义之后的某个地方执行了此操作,以将定义添加到我找到的 CFLAGS 变量中:
CFLAGS+=-DWIN64 NDEBUG
CFLAGS+=-D_WINDOWS
CFLAGS+=-D_USRDLL
CFLAGS+=-DNO_TCL
CFLAGS+=-D_CRT_SECURE_NO_DEPRECATE
CFLAGS+=-DTHREADSAFE=1
CFLAGS+=-DTEMP_STORE=1
CFLAGS+=-DSQLITE_MAX_EXPR_DEPTH=0
我做了 a bash configure
then a make
,它很高兴地做了一些事情。但是,现在目录中唯一的二进制/目标文件是 shell.o 和 sqlite3.o。现在据我所知,这些需要首先链接以获得一些可行的机器代码 - 所以它们不是我想要的。我期待一个DLL文件出现在某个地方,或者至少是类似的东西。
我究竟做错了什么?
更新 我最初使用的是 CFLAGS:=,我认为是附加的,但结果应该是 +=。现在它给出了以下错误 - ar: sqlite3.o: No such file or directory