无法使用redis连接器与g-wan一起工​​作

时间:2014-11-30 09:00:48

标签: c redis g-wan

所有的hiredis安装了吗? 默认使make install等

运行g-wan的结果: 链接hellox.c:未定义的符号:redisConnect

在线说连接lib是错误的?怎么解决这个问题?

2 个答案:

答案 0 :(得分:0)

阅读link libraries with G-WAN的方法。即使使用GCC,您也需要告诉链接器正在使用哪个库。 G-WAN并没有什么不同。

答案 1 :(得分:0)

我的脚本在我的服务器上工作:

#include "gwan.h" // G-WAN API
#pragma link "hiredis"
#include "hiredis/hiredis.h"
typedef struct
{
  redisContext *rCont;
  redisReply *rReply;
} data_t;


int main(int argc, char *argv[])
{
  data_t **d = (data_t**)get_env(argv, US_SERVER_DATA);
  xbuf_t *reply = get_reply(argv);
  u64 start = getus();
  const char *hostname = "127.0.0.1";
  int port = 6379;
  struct timeval timeout = { 1, 500000 }; // 1.5 seconds
  if(!d[0]) // first time: persistent pointer is uninitialized
  {
    d[0] = (data_t*)calloc(1, sizeof(data_t));
    if(!d[0])
        return 500; // out of memory
    d[0]->rCont  = redisConnectWithTimeout(hostname, port, timeout);
  }

  d[0]->rReply = redisCommand(d[0]->rCont,"PING");
  xbuf_xcat(get_reply(argv), "PING %s<br>", d[0]->rReply->str);
  freeReplyObject(d[0]->rReply);
  xbuf_xcat(get_reply(argv), "<hr>%llu µs<hr>", getus() - start);

  return 200;
}

您必须编译hiredis并将其复制到您的lib目录中。