致命错误:sqlite3.h:没有这样的文件或目录

致命错误:sqlite3.h:没有这样的文件或目录,sqlite,compilation,makefile,arm,zynq,Sqlite,Compilation,Makefile,Arm,Zynq,我正试图通过交叉编译为Zynq板(ARM架构)构建一个C应用程序。当我输入make而不提及臂弓时,它可以在我的笔记本电脑上正常工作。但一旦我修改了Makefile,我就会收到一个错误,上面写着: main.c:20:43: fatal error: sqlite3.h: No such file or directory #include "sqlite3.h" //library for sqlite3 ^

我正试图通过交叉编译为Zynq板(ARM架构)构建一个C应用程序。当我输入make而不提及臂弓时,它可以在我的笔记本电脑上正常工作。但一旦我修改了Makefile,我就会收到一个错误,上面写着:

main.c:20:43: fatal error: sqlite3.h: No such file or directory
 #include "sqlite3.h" //library for sqlite3
                                           ^
compilation terminated.
make: *** [ws_temp_server] Error 1
生成文件如下所示:

SOURCE=lib/base64_enc.c lib/websocket.c lib/sha1.c lib/sqlite/sqlite3.c main.c 
CC = arm-xilinx-linux-gnueabi-gcc
LDFLAGS=-lpthread -ldl
INCLUDES=lib/
PROGRAM=ws_temp_server

all: $(PROGRAM)

$(PROGRAM): $(SOURCE)
    $(CC) $(SOURCE) -I$(INCLUDES) -o$(PROGRAM) $(LDFLAGS)
clean:
    rm $(PROGRAM)

我做错了什么?谢谢您的帮助。

您没有提供足够的信息来确定:特别是,您没有说明
sqlite3.h
文件在您的文件系统中的实际位置。但是,根据您显示的内容,我怀疑您需要将
INCLUDES
变量更改为:

INCLUDES = lib/sqlite
(或者将代码中的
#include
更改为
#include“sqlite/sqlite3.h”
)。这是假设头文件与
sqlite3.c
源文件位于同一目录中

请注意,这是一个糟糕/令人困惑的实现。您应该将
-I
标志放在
INCLUDES
变量中:

INCLUDES = -Ilib/sqlite
    ...
$(PROGRAM): $(SOURCE)
        $(CC) $(SOURCE) $(INCLUDES) -o$(PROGRAM) $(LDFLAGS)
INCLUDES
是复数形式,这可能会让人相信他们可以在该变量中添加多个目录,但如果您保持原有的方式,这将导致奇怪的编译器错误:

INCLUDES = lib/sqlite another/dir
    ...
$(PROGRAM): $(SOURCE)
        $(CC) $(SOURCE) -I$(INCLUDES) -o$(PROGRAM) $(LDFLAGS)
将添加标志
-Ilib/sqlite另一个/dir
。。。请注意,第二个目录没有
-I
选项


当然,按照惯例,您应该使用
CPPFLAGS
(对于C预处理器标志),而不是
包括
,而是…:)

我已经用计算机解决了这个问题

$ sudo apt-get install libsqlite3-dev

(debian喘息)

谢谢!我刚刚使用了#include“sqlite/sqlite3.h”,现在可以使用了嗨,谢谢分享。在我的例子中,我在运行apt get install libsqlite3 dev
时修复了它。(德比安喘息)。嗯Someone@julianromera,你的建议对我也有用。我认为你的答案是正确的。你应该把它写下来作为一个答案。既然我的建议解决了原作者的问题,这显然是正确的答案。从问题中的信息可以看出,作者正在使用sqlite的本地安装,因此使用apt get安装开发工具包并不是他们想要的。其他人通过apt get安装开发工具包来解决这个问题是件好事,但这是一个不同的问题,需要不同的解决方案。因为,正如我上面所说,发布问题的人已经安装了libsqlite-3-dev,下面的答案就是,它将帮助其他有不同问题的人(他们没有安装该软件包)对此处提出的实际问题没有帮助。太棒了!您的建议在2秒钟内解决了我的问题!非常感谢!在我的情况下(CentOS Linux 7),解决此问题的命令略有不同:
sudo yum install libsqlite3x devel