编译自定义c++;包装器sqlite3 我下载了SqLITE3源代码,我想在我的一些应用程序中使用一个瘦的C++包装器使用SqLITE3。但是我在sqlite3.c中得到了一个未定义引用的列表
在my database.hpp中,我有c include:编译自定义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)$
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的合并版本,但是您能给我一个您建议的解决方案的示例吗?