我如何解决未解决的包含:<mongoc.h>?

时间:2017-06-30 09:25:58

标签: c mongo-c-driver

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

unresolved inclusion:<mongoc.h>

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

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

enter image description here

3 个答案:

答案 0 :(得分: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中修改项目配置。

答案 1 :(得分:1)

包含文件位于&#34; /usr/local/include/libmongoc-1.0 /"但是你已经告诉Eclipse要查看&#34; / usr / local / include /&#34;,所以很自然它找不到它。

您可以添加&#34; /usr/local/include/libmongoc-1.0 /"作为包含路径或将您包含的内容更改为<libmongoc-1.0/mongoc.h>。前者可能是更明智的选择,因为它将来比你所做的所有地方更容易改变包含路径。

答案 2 :(得分:-1)

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