mongo c驱动安装问题:test.c错误:mongoc.h:没有这样的文件或目录

时间:2015-07-21 05:59:56

标签: c mongodb installation mongo-c-driver

== 的安装: 蒙戈-C-驱动程序1.1.0 /usr/src/mongo-c-driver-1.1.0/src/mongoc

  

问题:头文件仍然没有得到。

=====

mongo c driver install issue : test.c error: mongoc.h: No such file or directory
root@webrtc mongoc]# vim  test.c
[root@webrtc mongoc]# gcc CFLAGS=-std=c99 test.c 192.168.0.181 27017 -o test.o
gcc: CFLAGS=-std=c99: No such file or directory
gcc: 192.168.0.181: No such file or directory
gcc: 27017: No such file or directory
test.c:18:20: error: mongoc.h: No such file or directory
test.c: In function ‘main’:
test.c:26: error: ‘mongoc_database_t’ undeclared (first use in this function)
test.c:26: error: (Each undeclared identifier is reported only once
test.c:26: error: for each function it appears in.)
test.c:26: error: ‘database’ undeclared (first use in this function)
test.c:27: error: ‘mongoc_cursor_t’ undeclared (first use in this function)
test.c:27: error: ‘cursor’ undeclared (first use in this function)

代码:

http://code-trick.com/mongodb-c-driver-examples/

https://github.com/mongodb/mongo-c-driver/releases

#include <mongoc.h>
#include <stdio.h>
int
main (int   argc,
      char *argv[])

   port = (argc == 3) ? atoi(argv[2]) : 27017;

   if (strncmp (argv[1], "mongodb://", 10) == 0) {
      host_and_port = bson_strdup (argv [1]);
   } else {
      host_and_port = bson_strdup_printf("mongodb://%s:%hu", argv[1], port);
   }

   client = mongoc_client_new(host_and_port);

   if (!client) {
      fprintf(stderr, "Invalid hostname or port: %s\n", host_and_port);
      return 2;
   }
   bson_init(&ping);
   bson_append_int32(&ping, "ping", 4, 1);
   database = mongoc_client_get_database(client, "test");
   cursor = mongoc_database_command(database, 0, 0, 1, 0, &ping, NULL, NULL);
   if (mongoc_cursor_next(cursor, &reply)) {
      str = bson_as_json(reply, NULL);
      fprintf(stdout, "%s\n", str);
      bson_free(str);
   } else if (mongoc_cursor_error(cursor, &error)) {
      fprintf(stderr, "Ping failure: %s\n", error.message);
      return 3;
   }

   mongoc_cursor_destroy(cursor);
   bson_destroy(&ping);
   mongoc_client_destroy(client);
   bson_free(host_and_port);

   return 0;
}

=====

2 个答案:

答案 0 :(得分:2)

gcc -o menu menu.c $(pkg-config --cflags --libs libmongoc-1.0) 解决了

答案 1 :(得分:0)

the compile step needs a -I. parameter so it will find the header file in the same directory

The link step 'may' need a '-L<pathToLibrary> parameter of non standard library location
the link step needs a '-l<short name of mongoc library' parameter so the library will be included