2

我是mongoc的新手。我的 mongo-c-driver 是 1.6.3,我想对 mongodb 数据库做一些操作,比如创建、更新、插入和删除。但是存在如下所示的问题。我的 eclipse CDT 包含头文件(路径:/usr/local/include),但 IDE 仍然找不到它们:

unresolved inclusion:<mongoc.h>

有人可以给我一些建议吗?

我手动安装了 mongo-c-driver,没有使用包管理器。

在此处输入图像描述

4

3 回答 3

2

该命令pkg-config输出一个标志以搜索标头所在的路径(不确定您必须提供的库名称:请咨询您的包管理器):

$ pkg-config --cflags libmongoc
-I/usr/local/include/libmongoc-1.0/

如果您使用 gcc,您的编译行必须如下所示:

gcc `pkg-config --cflags libmongoc` file.c

如果您使用 IDE,请找到为编译提供此功能的方法。这是最好的方法,因为如果您更新库,或者如果您将项目提供给具有不同标头位置的人,您的项目将保持正确编译。

因为您手动安装了库,所以您必须

  • libmongoc.pc文件安装到正确的位置(man pkg-config了解更多信息);
  • 要么手动放置标志:gcc -I/usr/local/include/libmongoc-1.0 file.c. -I/some/path给编译器的语法意思是:在这个地方搜索头文件。相应地修改 IDE 中的项目配置。
于 2017-06-30T10:02:59.350 回答
1

包含文件在“/usr/local/include/libmongoc-1.0/”中,但您已经告诉 Eclipse 在“/usr/local/include/”中查找,所以它自然不会找到它。

您可以添加“/usr/local/include/libmongoc-1.0/”作为包含路径,也可以将包含的内容更改为<libmongoc-1.0/mongoc.h>. 前者可能是更明智的选择,因为将来更改包含路径会比您执行包含的所有位置更容易。

于 2017-06-30T09:48:16.013 回答
0

谢天谢地!我已经解决了。不管你在哪里配置mongo-c-driver,比如/usr、/usr/local,或者/usr/local/xxx(任意名字),你可以发现mongoc.h等头文件都在libmongoc-下1.0 文件夹,您应该将所有头文件(xxxx.h)从 libmongoc-1.0 文件夹中复制到 include 文件夹下,这样就可以了。祝所有和我遇到同样问题的人好运。

于 2017-07-02T09:38:09.823 回答