ubuntu下编译安装libwebsockets



1.libwebsockets官网及GitHub地址

libwebsockets官网:​​https://www.libwebsockets.org/​

GitHub地址:​​https://github.com/warmcat/libwebsockets​

2.确保cmake、openssl安装成功

源码安装或是apt-get安装都可以。
我这里选择apt-get安装,方便一些。

sudo apt-get install cmake
sudo apt-get install openssl
sudo apt-get install libssl-dev

注意:apt-get安装openssl时还需要安装libssl-dev,否则会在后面找不到头文件,编译libwebsockets时提示找不到ssl.h等,此外,还需要注意openssl的版本好像要大于1.0.0,libwebsockets使用的openssl的版本有最低要求,具体参见官网说明。

3.Ubuntu下下载、编译及安装

准备好环境后就可以下载、编译及安装libwebsockets了:

git clone https://github.com/warmcat/libwebsockets.git
cd libwebsockets
mkdir build
cd build
cmake ..
make
sudo

3.结果

只要准备好openssl、cmake等的安装,在Ubuntu下安装没有什么大的问题:

loon@loon-virtual-machine:~/work/libwebsockets/build$ cmake ..
...
LWS_AVOID_SIGPIPE_IGN = OFF
LWS_WITH_STATS = OFF
LWS_WITH_SOCKS5 = OFF
LWS_HAVE_SYS_CAPABILITY_H =
LWS_HAVE_LIBCAP =
LWS_WITH_PEER_LIMITS = OFF
LWS_HAVE_ATOLL = 1
LWS_HAVE__ATOI64 =
LWS_HAVE_STAT32I64 =
LWS_HAS_INTPTR_T = 1
LWS_WITH_EXPORT_LWSTARGETS = ON
---------------------------------------------------------------------
-- Configuring-- Generating-- Build files have been written to:loon@loon-virtual-machine:~/work/libwebsockets/build$ make
...
[ 94%] Building C object CMakeFiles/websockets_shared.dir/lib/roles/http/server/lejp-conf.c.o
[ 95%] Linking C shared library lib/libwebsockets.so
[ 95%] Built target websockets_shared
Scanning dependencies of target test-server-extpoll
[ 96%] Building C object CMakeFiles/test-server-extpoll.dir/test-apps/test-server.c.o
[ 97%] Linking C executable bin/libwebsockets-test-server-extpoll
[ 97%] Built target test-server-extpoll
Scanning dependencies of target test-lejp
[ 98%] Building C object CMakeFiles/test-lejp.dir/test-apps/test-lejp.c.o
[ 99%] Linking C executable bin/libwebsockets-test-lejp
[ 99%] Built target test-lejp
Scanning dependencies of target test-client
[ 99%] Building C object CMakeFiles/test-client.dir/test-apps/test-client.c.o
[100%] Linking C executable bin/libwebsockets-test-client
[100%] Built target test-client
loon@loon-virtual-machine:~/work/libwebsockets/build$ sudo make install
...
-- Installing:-- Installing:-- Installing:-- Installing:-- Installing:-- Installing:-- Installing:-- Installing:-- Installing:-- Installing:-- Installing: /usr/local/lib/cmake/libwebsockets/LibwebsocketsConfig.cmake
-- Installing: /usr/local/lib/cmake/libwebsockets/LibwebsocketsConfigVersion.cmake
-- Installing: /usr/local/lib/cmake/libwebsockets/LibwebsocketsTargets.cmake
-- Installing: /usr/local/lib/cmake/libwebsockets/LibwebsocketsTargets-release.cmake

4.测试

安装完成后,可以直接使用libwebsockets提供的测试程序直接测试:

loon@loon-virtual-machine:~/work/libwebsockets/build$ libwebsockets-test-
libwebsockets-test-client libwebsockets-test-server
libwebsockets-test-fuzxy libwebsockets-test-server-extpoll
libwebsockets-test-lejp

比如libwebsockets-test-server:

loon@loon-virtual-machine:~/work/libwebsockets/build$ libwebsockets-test-server
[2018/09/08 11:06:57:1378] NOTICE: libwebsockets test server - license LGPL2.1+SLE
[2018/09/08 11:06:57:1388] NOTICE: (C) Copyright 2010-2018 Andy Green <andy@warmcat.com>
Using resource path "/usr/local/share/libwebsockets-test-server"
[2018/09/08 11:06:57:1403] NOTICE: Creating Vhost 'default' port 7681, 5

运行服务后访问服务器端的7681端口即可,当然也可以指定端口和资源,这里不再细说了。

5.最后

目前在Ubuntu16.04 64位下测试完成后,我通过交叉编译也移植了libwebsockets到openwrt下了(mips的cpu架构),运行效果还可以。