gwan和mongodb

时间:2013-04-11 04:47:15

标签: c mongodb g-wan

我是gwan的新手,目前正在编写一个简单的程序来插入和选择MongoDB中的数据。 编译Mongo-c驱动程序后,将Mongo标准库放在/ usr / lib /中,我发现我在gwan / csp文件夹下的程序有错误:

Linking myprog.c: undefined symbol: mongo_client

我的节目

#include <mongo.h>
int main(){ 
    ...
    mongo conn[1];
    int status = mongo_client( conn, "192.168.1.115", 27017 );
}

(我在Linux环境下编写的程序可以工作!)&lt; - 我的意思是mongodb官方测试代码。

gcc -o output -lmongoc myprog_Linux.c

任何人都可以帮助我吗? 非常感谢你:))

2 个答案:

答案 0 :(得分:1)

如果您使用G-WAN脚本中的第三方库,则必须使用#pragma include "library_include_path"#pragma link "library_name"指令(它们替换生成文件)。

当然,和C / C ++一样,必须使用#include标头来添加库使用的定义。

这在G-WAN PDF manualdevelopers网站,G-WAN FAQs以及依赖各种库的许多servlet示例(libcurl,libmysql,libsqlite,libcairo,libmagick,等)。

答案 1 :(得分:1)

这里有一个gwan + mongoDB的小样本

首先:安装mongoDB c驱动程序(https://github.com/mongodb/mongo-c-driver

$ git clone https://github.com/mongodb/mongo-c-driver.git
$ cd mongo-c-driver
$ scons
$ sudo scons install

它将安装在/ usr / local文件夹中,如果需要,您需要对其进行调整,或者只是将生成的文件复制到/ usr / lib&amp;的/ usr /包括/

然后以root身份运行ldconfig

$ sudo ldconfig

安装mongodb c驱动程序后,只需尝试使用这个简单的示例:

// ============================================================================
// C servlet sample for the G-WAN Web Application Server (http://trustleap.ch/)
// ----------------------------------------------------------------------------
// mongodb.c: querying mongoDB from G-WAM
// ============================================================================

#pragma link "mongoc"
#pragma link "bson"

#include <mongo.h>
#include <bson.h>
#include "gwan.h" // G-WAN exported functions

int main(int argc, char *argv[])
{
   xbuf_t *reply = get_reply(argv);
   mongo conn[1];
   int status = mongo_client( conn, "localhost", 27017 );

  if( status != MONGO_OK ) {
    switch ( conn->err ) {
      case MONGO_CONN_NO_SOCKET:  printf( "no socket\n" ); return 1;
      case MONGO_CONN_FAIL:       printf( "connection failed\n" ); return 1;
      case MONGO_CONN_NOT_MASTER: printf( "not master\n" ); return 1;
    }
  }

  int i = 0;
  for(i=0; i<100;i++) {
    bson b[1];
    bson_init( b );
    bson_append_new_oid( b, "_id" );
    bson_append_string( b, "name", "Joe" );
    bson_append_int( b, "age", 33 );
    bson_finish( b );
    mongo_insert( conn, "tutorial.people", b, NULL );
    bson_destroy( b );
  }

  xbuf_xcat(reply, "Hello Mongo !! %d %d", status, i);

  return 200;
}
// ============================================================================
// End of Source Code
// ============================================================================

享受:)