使用'make'编译C源代码

时间:2012-05-28 08:28:28

标签: c makefile c-preprocessor

我正在尝试使用来自此处的'autoconf'的合并来源为Windows 64位编译sqlite3:http://www.sqlite.org/sqlite-amalgamation-3071201.zip

有人在我之前的问题Need 64-bit SQLite DLL for managed C# application上发布了一些预处理器定义了我需要使用的问题:

  • WIN64 NDEBUG
  • _WINDOWS
  • _USRDLL
  • NO_TCL
  • _CRT_SECURE_NO_DEPRECATE
  • THREADSAFE = 1
  • TEMP_STORE = 1
  • SQLITE_MAX_EXPR_DEPTH = 0

我一直在寻找如何实现这项工作 - 我是这一切的新手。我记得Linux有一个'make'工具,所以我启动了我的Ubuntu VM,安装了make和gcc,然后在新目录中准备了源代码。

通过阅读其他帖子和互联网文章,我收集了一些提示,预处理器定义可以放在Makefile中,所以我在Makefile.in中的所有其他定义之后在某个地方执行此操作,以将定义添加到我找到的CFLAGS变量:< / p>

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

我做了bash configure然后是make,并且乐意做了一些事情。但是,目录中唯一的二进制文件/目标文件现在是shell.o和sqlite3.o。据我所知,这些需要首先联系起来以获得一些可行的机器代码 - 所以它们不是我想要的。我期待一个DLL文件出现在某个地方,或者至少是类似的东西。

我做错了什么?

更新 我最初使用CFLAGS:=,我认为是追加,但事实证明它应该是+ =。 现在它给出了以下错误 - ar:sqlite3.o:没有这样的文件或目录

0 个答案:

没有答案
相关问题