我想在外部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
}
答案 0 :(得分:0)
结果是我在系统上安装了libwebsockets,并且正在与该系统库链接,不是是通过libuv支持编译的。