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

Mongodb h:没有这样的文件或目录,mongodb,gcc,mongo-c-driver,Mongodb,Gcc,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 但是,当我运行名为“Deal.C”的C文件时,如下所示: gcc -o Deal Deal.c

我从官方网站获得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
但是,当我运行名为“Deal.C”的C文件时,如下所示:

gcc -o Deal Deal.c -l /usr/local/include -L /usr/local/lib -lmongoc
Error:#include "mongo.h"
                     ^ compilation terminated.

我的系统版本:是Ubuntu13.10

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

./configure --prefix=/usr --libdir=/usr/lib64
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gcc Deal.c $(pkg-config --cflags --libs libmongoc-1.0)
如果这不是一个选项,则可以更新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
这通常会通过在类似Unix的系统上使用
pkg config
自动完成:

gcc Deal.c $(pkg-config --cflags --libs libmongoc-1.0)
但是,如果安装到非标准路径,如/usr/local,则需要让
pkg config
知道在哪里可以找到
libmongoc-1.0.pc
文件,例如:

./configure --prefix=/usr --libdir=/usr/lib64
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gcc Deal.c $(pkg-config --cflags --libs libmongoc-1.0)

名为mongoc.h而不是mongo.hI的头文件尝试了mongoc.h头文件而不是mongo.hb头文件,但它不起作用,错误:mongoc.h:不是这样的文件或目录它似乎也安装到
include/mongoc-${API_VERSION}
中,其中当前版本似乎是1.0,因此完整路径实际上应该是
mongoc-1.0/mongoc.h
,如果它真的起作用,我永远不会在这里问这样的问题@USER1937198谢谢,使用前缀
--prefix=/usr--libdir=/usr/lib64
,Fedora在其中存储lib和header。但是,使用默认安装位置
/usr/local/
仍然不起作用。我很困惑,因为lib都在
/usr/local/lib
中,而头在
/usr/local/include
中。它像以前一样编译,但是它仍然抱怨它找不到
libmongoc-1.0.so.0
,即使它存在。有什么想法吗?
[raspberries@localhostmongo-c-driver]$。/配置和制作和sudo制作安装
[raspberries@localhostmongo-c-driver]$PKG_CONFIG_PATH=/usr/local/lib/pkgconfig PKG CONFIG--cflags--libs libmongoc-1.0
-I/usr/local/include/libmongoc-1.0-I/usr/include/libbson-1.0-L/usr/local/lib-lrt-lmongoc-1.0-lbson-1.0
[raspberries@localhostC-mongo]$gcc-o test test.c-I/usr/local/include/libmongoc-1.0-I/usr/include/libbson-1.0-L/usr/local/lib-lrt-lmongoc-1.0-lbson-1.0[raspberries@localhostC-mongo]$./test
/test:加载共享库时出错:libmongoc-1.0.so.0:无法打开共享对象文件:没有此类文件或目录
[raspberries@localhostC-mongo]$ls/usr/local/lib/libmongoc-1.0.so.0
/usr/local/lib/libmongoc-1.0.so.0
很抱歉,我没有看到这个。但原因是,在启动应用程序时,动态链接器无法找到库。(/etc/ld.so.conf将告诉您它配置为查看的位置)。否则,您只需执行LD_LIBRARY_PATH=/usr/local/lib./testI应该注意,这在mongo-c-driver-1.6.3(并将这些标志传递给./configure worked)和mongo-cxx-driver-r3.1.2中都发生过,其中cmake需要-DLIBBSON_DIR和-DLIBMONGOC_DIR