我从官方网站上获得了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
答案 0 :(得分: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
这通常会在类似Unix的系统上使用pkg-config
自动完成:
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)