我是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
任何人都可以帮助我吗? 非常感谢你:))
答案 0 :(得分:1)
如果您使用G-WAN脚本中的第三方库,则必须使用#pragma include "library_include_path"
和#pragma link "library_name"
指令(它们替换生成文件)。
当然,和C / C ++一样,必须使用#include标头来添加库使用的定义。
这在G-WAN PDF manual,developers网站,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
// ============================================================================
享受:)