Windows下编译和使用websocketpp

应用场景:

使用C++开发一个支持websocket协议的服务进程,可与HTML5(浏览器js文件)通信。来实现替换基于firebreath框架的跨浏览器插件开发。
当前,讲述websocketpp开源库的应用。目的是为了实现C++进程,支持websocket协议。

而wesocketpp是一个开源库,依赖于boost, openssl。

准备资源:
1.websocketpp
https://github.com/zaphoyd/websocketpp


2.openssl资源(不使用加密算法,可忽略)
从Github下载源码编译。或直接下载编译好的二进制文件。
路径:https://www.npcglib.org/~stathis/blog/precompiled-openssl/


3.boost资源
编译好的安装文件:
路径:https://sourceforge.net/projects/boost/files/boost-binaries/1.66.0/
源码下载地址:
https://sourceforge.net/projects/boost/files/boost/
参考网址:
https://blog.csdn.net/hellokandy/article/details/70877870
https://blog.csdn.net/hellokandy/article/details/51149505
 

编译安装Boost

  • WebSocketpp依赖于Boost,因此在使用WebSocketpp前需要编译安装Boost。
  • Boost C++ Libraries - Browse /boost-binaries at SourceForge.net 下载稳定版的进行编译。
  • 下载的压缩包解压后,在命令行CMD窗口进入Boost文件夹中,运行bootstrap.bat脚本。
  • 脚本运行完成后会生成b2.exe,运行b2.exe就会开始编译,即在命令行输入把“b2 install”,注意,不要漏了install,它会帮你把头文件集合到一个文件夹中。编译过程有一个复制过程,编译需要的时间比较长,本次编译过程中,会在C盘>根目录下生成一个boost文件夹,然后包含include和lib文件夹,这就是我们将要使用>的头文件和库文件。
  • 默认编译动态库,需要静态库的执行命令:b2 stage --toolset=msvc-14.1 link=static runtime-link=static threading=multi release
  • 编译完成后Boost的静态库会在stage文件夹中生成。

编译websocketpp

  • 下载websocketpp源码,解压。
  • vs2017新建一个websocket server的控制台工程,将websocketpp源码中examples/echo_server文件夹中的两个源文件拷贝到新建的工程目录中,然后添加到vs工程中。
  • 将websocketpp和boost的路径添加到vs工程的附加包含目录中。
  • 将编译好的boost静态库路径(boost\stage\lib)添加到vs工程的附加库目录中。
  • 编译websocket server程序运行。

测试

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在Windows编译使用cjson库的步骤: 1. 下载cjson库的源代码,可以从官方网站上下载,或者从GitHub上下载。 2. 安装MinGW-w64,这是一个Windows平台下的GNU编译器套件,可以用于编译cjson库。 3. 将MinGW-w64的安装路径添加到系统环境变量中,例如将C:\MinGW-w64\mingw64\bin添加到系统环境变量的Path变量中。 4. 打开命令提示符窗口,进入cjson库源代码所在的目录。 5. 在命令提示符窗口中输入以下命令,编译cjson库: ``` gcc -c cjson.c ar rcs libcjson.a cjson.o ``` 第一条命令是编译cjson.c文件,生成cjson.o目标文件;第二条命令是将cjson.o目标文件打包成静态库文件libcjson.a。 6. 编译完成后,在cjson库源代码所在的目录下会生成libcjson.a静态库文件。 7. 在需要使用cjson库的代码中,包含cjson.h头文件,并链接libcjson.a静态库文件。例如: ``` #include <stdio.h> #include "cjson.h" int main() { cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "John"); char *json_str = cJSON_Print(root); printf("%s\n", json_str); cJSON_Delete(root); return 0; } ``` 在编译时,需要指定libcjson.a静态库文件的路径和名称,例如: ``` gcc -o test test.c -L. -lcjson ``` 这里假设test.c是包含上述代码的文件,-L.指定静态库文件的路径为当前目录,-lcjson指定要链接的静态库文件为libcjson.a。 8. 运行编译后的可执行文件,即可使用cjson库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值