所有的hiredis安装了吗? 默认使make install等
运行g-wan的结果: 链接hellox.c:未定义的符号:redisConnect
在线说连接lib是错误的?怎么解决这个问题?
答案 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目录中。