编译自定义c++;包装器sqlite3 我下载了SqLITE3源代码,我想在我的一些应用程序中使用一个瘦的C++包装器使用SqLITE3。但是我在sqlite3.c中得到了一个未定义引用的列表

编译自定义c++;包装器sqlite3 我下载了SqLITE3源代码,我想在我的一些应用程序中使用一个瘦的C++包装器使用SqLITE3。但是我在sqlite3.c中得到了一个未定义引用的列表,c++,c,sqlite,makefile,compilation,C++,C,Sqlite,Makefile,Compilation,在my database.hpp中,我有c include: extern“C”{ #包括“sqlite3.h” } 我的makefile如下所示: CC=gcc-g CPP=g++-g CFLAGS=-c-Wall-ggdb CPPSOURCES=$(通配符*.cpp) CSOURCES=$(通配符*.c) OBJECTS=$(CPPSOURCES:.cpp=.o)$(CSOURCES:.c=.o) EXECUTABLE=testdb all:$(CPPSOURCES)$(CSOURCES)$

在my database.hpp中,我有c include:
extern“C”{

#包括“sqlite3.h”

}

我的makefile如下所示:
CC=gcc-g

CPP=g++-g

CFLAGS=-c-Wall-ggdb

CPPSOURCES=$(通配符*.cpp)

CSOURCES=$(通配符*.c)

OBJECTS=$(CPPSOURCES:.cpp=.o)$(CSOURCES:.c=.o)

EXECUTABLE=testdb

all:$(CPPSOURCES)$(CSOURCES)$(可执行文件)

$(可执行):$(对象)

\t$(CPP)$(对象)-o$@

.cpp.o:

\t$(CPP)$(CFLAGS)和<-o$@

.c.o:

\t$(CC)$(CFLAGS)和<-o$@

清洁:
\t rm-rf*o$(可执行文件)

那么,我的Makefile中缺少什么呢?或者别的地方。。我需要一些链接器选项吗

tx,

aktiv

您需要链接sqlite3库,否则它将无法工作。我没有看到任何
-l
参数


此外,您不需要使用那些.cpp.o和.c.o Makefile命令。它们将由内置的自动规则处理。您只需要使用正确的标志变量。对于C文件,使用cFLAGS,对于C++文件,使用CXFLASGS,对于链接步骤,您提供LDFLAGS与您的<代码> -L>代码>参数。< /P> < P>下载页面上有一个带有MaFIX文件的TabM球。

要创建库,请执行以下操作:

./configure--prefix/your/own/directory
制造
安装

在这个目录中,“makefile”将头和lib放在该目录中


然后您可以像Zan解释的那样进行链接。

请给出一些您看到的错误消息的示例。提示:在构建Tx时,请确保您使用的是SQLite的合并版本,但是您能给我一个您建议的解决方案的示例吗?