C++ Parallel Computing and Asynchronous Networking Engine

workflow是搜狗公司C++服务器引擎,支撑搜狗几乎所有后端C++在线服务,包括所有搜索服务,云输入法,在线广告等,每日处理超百亿请求。这是一个设计轻盈优雅的企业级程序引擎,可以满足大多数C++后端开发需求。

一、下载搜狗workflow的官方源码

https://github.com/sogou/workflow

https://gitee.com/sogou/workflow 国内镜像

其中,Windows版本是分支,https://github.com/sogou/workflow/tree/windows,使用iocp实现异步网络。

二、环境搭建

1、OpenSSL的安装

从第三方网站,Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions,下载x64位的安装包Win64OpenSSL-1_1_1k.exe。

注意事项

openssl在1.0.x之前的版本中,文件为libeay32.dll和ssleay32.dll,在1.1.x之后的版本中,名字是libssl.dll和libcrypto.dll

2、CMake的安装

下载并安装CMake,Windows x64位版本的安装包

Download | CMake

3、WorkFlow源码编译

使用VS2019或者Qt Creator打开工程文件CMakeLists.txt

CMake会自动检测到OpenSSL库的存在:

1> [CMake] -- Found OpenSSL: optimized;C:/Program Files/OpenSSL-Win64/lib/VC/libcrypto64MD.lib;debug;C:/Program Files/OpenSSL-Win64/lib/VC/libcrypto64MDd.lib (found version "1.1.1k")  

然后一键编译,可以生成workflow.lib。

三、案例测试

1、在文件\sogou-cpp-workflow\CMakeLists.txt末尾添加:

SUBDIRS(tutorial)

2、修改\sogou-cpp-workflow\tutorial\CMakeLists.txt文件的局部内容

add_executable(server ${DIR10}/server.cc ${DIR10}/message.cc)
add_executable(client ${DIR10}/client.cc ${DIR10}/message.cc)
target_link_libraries(server ${WORKFLOW_LIB})
target_link_libraries(client ${WORKFLOW_LIB})

add_executable(server_demo ${DIR10}/server.cc ${DIR10}/message.cc)
add_executable(client_demo ${DIR10}/client.cc ${DIR10}/message.cc)
target_link_libraries(server_demo ${WORKFLOW_LIB})
target_link_libraries(client_demo ${WORKFLOW_LIB})

3、可以一键编译案例了。生成的exe需要依赖openssl库:libcrypto-1_1-x64.dll和libssl-1_1-x64.dll。把它们从目录C:\Program Files\OpenSSL-Win64\bin拷贝过来。

4、以Qt Creator打开tutorial-01-wget案例为例,添加命令行参数:

5、运行结果:

大功告成(#^.^#)

---

推荐阅读:

单机40万QPS,搜狗WF框架,今年最值得学习的开源代码

单机40万QPS,搜狗WF框架,今年最值得学习的开源代码_shenjian58的博客-CSDN博客

学习搜狗workflow心路历程(1)Windows版本的环境搭建相关推荐

  1. node php环境变量配置,关于NodeJS、NPM安装配置步骤(windows版本) 以及环境变量的介绍...

    本篇文章主要介绍了NodeJS.NPM安装配置步骤(windows版本) 以及环境变量详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.windows下的NodeJS安装是比较方便的(v0. ...

  2. 51单片机学习历程——硬件准备&开发环境搭建

    系列文章目录 第一章 51单片机学习历程(1)--开发环境搭建 第二章 51单片机学习历程(2)--建立新的工程 第三章 51单片机学习历程(3)--点亮一颗LED 第四章 51单片机学习历程(4)- ...

  3. ESP32开发 0.windows Vscode开发环境搭建,基于esp-idf-V4.2 | Cmake | Vscode插件

    一 前言 入坑嵌入式以来,一直都在寻找一款通用MCU控制器:他应有优秀的计算处理能力.丰富的外设扩展能力.支持有线/无线联网.小巧的封装.自从ESP8266爆火以来,熟悉过它的使用,但窘于硬件限制,只 ...

  4. ④ESP8266 开发学习笔记_By_GYC 【Ubuntu系统下ESP8266 开发环境搭建】

    目录 ④ESP8266 开发学习笔记_By_GYC [Ubuntu系统下ESP8266 开发环境搭建] 一.安装前准备 1.乐鑫官方的ESP-IDF 编程指南 2.ESP-IDF风格的ESP8266 ...

  5. windows下python环境搭建_Linux/Windows下Python环境搭建步骤

    Python环境搭建首先到官网(www.python.org)下载相应的安装版本.主要分为Windows和Linux两种: 一.Linux下Python环境搭建 一般情况下,Linux系统都已经预安装 ...

  6. windows驱动开发环境搭建以及helloworld

    文章目录 前言 编译环境-WDK的安装 搭建测试驱动的虚拟机 win11虚拟机 win10虚拟机 在测试机器上运行驱动 修改注册表-显示调试信息 上面驱动代码含义 测试证书签名 其他 旧版本的visu ...

  7. Physx3.4学习随笔(入门篇1)-SDK与环境搭建

    Physx3.4学习随笔(入门篇1)-SDK与环境搭建 SDK与环境搭建 SDK获取 PhysX Visual Debugger 执行SnippetHelloworld SDK与环境搭建 本文主要介绍 ...

  8. windows phone开发环境搭建

    windows phone开发环境搭建 转载于:https://blog.51cto.com/yirisu/579302

  9. 学习react的心路历程(一)

    我是react小白,网上的react教程成堆成堆的,我就不在这里写什么教程,巴拉巴拉以下我的学习"心得"! 我是在"技术胖"的带领下学习的react,这个教程是 ...

  10. PHP学习之路(二)让我们开始环境搭建(Windows篇)

    在上篇中,我详述了在Windows下配置Zend开发工具的详细过程,但是没有一个开发环境,你再牛B的工具自然也跑不起来,比如没有了.NET Framework,你跑个Visual Studio试试,所 ...

最新文章

  1. 【转】无法将notepad++添加到打开方式列表中的解决办法
  2. 兄弟,用大白话给你讲小白都能看懂的分布式系统容错架构
  3. AFNetworking 3.0 源码解读(一)之 AFNetworkReachabilityManager
  4. nginx访问目录是没加/的重定向控制
  5. javascript焦点图
  6. python批量复制粘贴_用python批量复制特定图片
  7. Robot Framework(十二) javascript基础
  8. Adobe Photoshop源代码以及3800万用户信息泄漏
  9. quake3中求1/sqrt(x)的算法源代码
  10. Java温习——SUN公司和Java平台
  11. easyui php分页,jQuery EasyUI 教程-Pagination(分页)
  12. 计算机基础及excel,S102-计算机基础(06)-EXCEL简介及基本操作
  13. 【MATLAB】高塔观测数据波文比法计算感热及潜热通量
  14. 4月1起入境泰国取消核酸检测,来曼谷旅游,这6座寺庙必打卡
  15. 鸿蒙os关于记事本的增添笔记
  16. 牛客 - 统计每个月兔子的数量
  17. 解决PS处理DIF后有重影的问题!
  18. ESP32/ESP32S3模组在使用Touchpad例子发生flash出错问题解决方式
  19. k2698场效应管参数电流_常用场效应管参数
  20. synchronized:这都不懂,你不爱我了

热门文章

  1. 公司最大的内耗,是“人才错配”
  2. VirtualBox 扩展VDI空间
  3. 凸集学习——理解凸集概念、凸包演示
  4. 服务器软硬件安装和配置,Windows Server 2016-系统安装软硬件要求
  5. Python 实现应用程序窗口截屏 Gif
  6. 解除360的系统压缩
  7. php中的,理解php中的print EOT
  8. 定时删除虚拟服务器快照,自动执行VMware快照并删除超过5天的快照
  9. 私人用的红帽linux,红帽宣布为个人开发者提供16个RHEL免费许可 支持在生产环境中使用...
  10. python绘画海贼王_Python入门之生成海贼王云图