mongo.h:没有这样的文件或目录

use*_*421 3 gcc mongodb mongo-c-driver

我从官方网站上获得了mongo-c-driver,如下:

$git https://github.com/mongodb/mongo-c-driver.git
$cd mongo-c-driver
$./autogen.sh
$ make
$ sudo make install
Deal.c:2:19: fatal error: mongo.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

但是,当我运行名为"Deal.c"的C文件时,如下所示:

gcc -o Deal Deal.c -l /usr/local/include -L /usr/local/lib -lmongoc
Error:#include "mongo.h"
                     ^ compilation terminated.
Run Code Online (Sandbox Code Playgroud)

我的系统版本:是Ubuntu 13.10

小智 8

您似乎缺少标题的路径以及库的位置.一种选择是安装到您的平台使用的相同前缀,例如:

./configure --prefix=/usr --libdir=/usr/lib64
Run Code Online (Sandbox Code Playgroud)

如果这不是一个选项,那么您可以更新您的Makefile以包含正确的库并包含路径:

gcc Deal.c -L/usr/local/lib -I/usr/local/include/libmongoc-1.0 -I/usr/local/include/libbson-1.0 -lmongoc-1.0 -lbson-1.0
Run Code Online (Sandbox Code Playgroud)

这通常会pkg-config在Unix类似的系统上自动完成,如下所示:

gcc Deal.c $(pkg-config --cflags --libs libmongoc-1.0)
Run Code Online (Sandbox Code Playgroud)

但是,如果安装到非标准路径(例如/ usr/local),则需要pkg-config知道在哪里找到该libmongoc-1.0.pc文件,例如:

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gcc Deal.c $(pkg-config --cflags --libs libmongoc-1.0)
Run Code Online (Sandbox Code Playgroud)