编译基于libevent的C代码时出现链接错误

时间:2014-07-08 03:54:16

标签: http libevent

获得一个使用libevent模拟HTTPS客户端的示例程序(来自https://raw.githubusercontent.com/libevent/libevent/master/sample/https-client.c)。我将它保存到te1.c并编译它,但是出现了以下链接错误。

$ gcc -g te1.c -levent  -levent_openssl 
/tmp/cc5xxmcP.o: In function `http_request_done':
/home/jin1/tmp/te1.c:82: undefined reference to `evhttp_request_get_response_code_line'
/tmp/cc5xxmcP.o: In function `main':
/home/jin1/tmp/te1.c:297: undefined reference to `bufferevent_openssl_set_allow_dirty_shutdown'
/home/jin1/tmp/te1.c:301: undefined reference to `evhttp_connection_base_bufferevent_new'
collect2: ld returned 1 exit status

知道哪些库具有evhttp_request_get_response_code_line,evhttp_connection_base_bufferevent_new等函数?提前谢谢!

1 个答案:

答案 0 :(得分:1)

原来的libevent-2.0.so.5.1.4安装了/ usr / lib(通过apt-get install libevent-dev)。 libevent-2.0.so.5.1.4没有符号。我编译和安装的最新libevent库位于/ usr / local / bin。

以下行(使用-L / usr / local / bin)帮助:

gcc -g te1.c -L/usr/local/lib -levent  -levent_openssl