使用libwebsockets启用libuv编译时出现问题

时间:2019-01-31 21:14:32

标签: cmake libuv libwebsockets

我想在外部libuv循环中使用libwebsockets。 我的代码(受this simple example启发)可以正确地编译和链接,但是在执行时,应网页请求,浏览器从未收到服务器的响应。

我从cmake的源代码中构建了libwebsockets(v3.1.0)和libuv(v1.25.0)。我使用以下命令行:

cmake -DLWS_WITH_LIBUV=1 .. && make

cmake输出提到该选项的正确值:

LWS_WITH_LIBEV = OFF 
LWS_WITH_LIBUV = 1
LWS_WITH_LIBEVENT = OFF

在构建目录中对该选项进行grepping会显示以下内容(看起来也不错):

CMakeCache.txt:483:LWS_WITH_LIBUV:BOOL=ON
extern/libwebsockets/include/libwebsockets/lws-service.h:185:#ifdef LWS_WITH_LIBUV
extern/libwebsockets/include/libwebsockets/lws-service.h:209:#endif /* LWS_WITH_LIBUV */
extern/libwebsockets/include/libwebsockets.h:157:#ifdef LWS_WITH_LIBUV
extern/libwebsockets/include/libwebsockets.h:165:#endif /* LWS_WITH_LIBUV */
extern/libwebsockets/include/lws_config.h:72:#define LWS_WITH_LIBUV
extern/libwebsockets/lws_config.h:72:#define LWS_WITH_LIBUV

但是,使用下面的代码(我从一个最小的(不是)工作示例中得到的最接近的代码)没有显示任何消息。

#include <uv.h>

int main()
{
    #ifdef LWS_WITH_LIBUV
    std::cout<<"With libuv"<<std::endl;
    #endif
}

我看过herehere,但我不知道下一步该怎么做。

1 个答案:

答案 0 :(得分:0)

结果是我在系统上安装了libwebsockets,并且正在与该系统库链接,不是是通过libuv支持编译的。