3

我从官网上得到了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.

我的系统版本:是 Ubuntu 13.10

4

1 回答 1

8

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

./configure --prefix=/usr --libdir=/usr/lib64

如果这不是一个选项,那么您可以更新您的 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

这通常会通过pkg-config在类 Unix 系统上使用自动为您完成,如下所示:

gcc Deal.c $(pkg-config --cflags --libs libmongoc-1.0)

但是,如果您安装到非标准路径(例如 /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)
于 2014-04-15T01:32:26.130 回答