ubuntu 安装 evpp
ubuntu 安装 evpp
来源 https://www.cnblogs.com/wisdomyzw/p/9402440.html
Ubuntu虚拟机安装开源库evpp说明:
EVPP为奇虎360基于libevent开发的现代化的支持C++11特性的高性能网络库,自带TCP/UDP/HTTP等协议的异步非阻塞式的服务器和客户端库。拥有如下特性:
* 现代版的C++11接口
* 非阻塞异步接口都是C++11的functional/bind形式的回调仿函数(不是libevent中的C风格的函数指针)
* 非阻塞纯异步多线程TCP服务器/客户端
* 非阻塞纯异步多线程HTTP服务器/客户端
* 非阻塞纯异步多线程UDP服务器
* 支持多进程模式
* 优秀的跨平台特性和高性能(继承自libevent的优点)
evpp的编译需要依赖如下动态库, 分别介绍如下:
libevent glog gtest gflags boost evpp
linevent:
1、window访问: http://libevent.org/libevent-2.0.22.tar.gz, 拷贝到linux机器上
(或者了Linux wget http://libevent.org/libevent-2.0.22.tar.gz)
2、tar -zxvf libevent-2.0.22-stable.tzr.gz
3、cd libevent-2.0.22-stable
4、./configure --prefix=/usr
5、make
6、sudo make install
7、检查是否安装成功, ls -al /usr/lib | grep libevent
glog:
1、下载源码: git clone https://github.com/google/glog
(git clone下载慢可以参考:
ubuntu上解决访问github慢的方法:
1、进入终端命令行模式,输入sudo vi /etc/hosts
2、输入i进入编辑命令,英文输入法输入G,vim编辑器跳到hosts文件的最后一行
3、用浏览器访问 IPAddress.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址
4、在vi打开的hosts文件中添加如下格式:
192.30.253.112 github.com
151.101.44.249 github.global.ssl.fastly.net
5、esc退出编辑模式,输入:wq,保存hosts文件,修改hosts结束
6、更新DNS缓存,输入sudo /etc/init.d/networking restart
)
2、配置: sudo apt-get install autoconf automake libtool
3、编译安装:
进入源码根目录(glog文件夹)
./autogen.sh
./configure
make -j 24
sudo make install
gflags:
1、下载源码:git clone https://github.com/gflags/gflags
2、编译安装:
进入源码目录(即gflags文件夹)
cmake .
make -j 24
sudo make install
gtest:
1、安装源代码:sudo apt-get install libgtest-dev
2、编译源代码:
cd /usr/src/gtest
$ sudo mkdir build
$ cd build
$ sudo cmake ..
$ sudo make
3、拷贝生成的库到系统目录下(将生成的libgtest.a 和 libgtest_main.a 拷贝到系统的lib路径下.):
$ sudo cp libgtest*.a /usr/local/lib
boost:
使用apt-get直接进行安装: sudo apt-get install libboost-dev
(这个安装成功了,但是使用失败,应该是包不全,没有boost_system与boost_thread等)
1、下载安装包源码:
https://www.boost.org/users/download/
2、解压编译:
tar -zxvf boost_1_67_0.tar.gz
cd boost_1_67_0
./bootstrap.sh(不用加 --prefix=dir,会默认安装到/usr/local/目录下,成功会生成b2可执行文件)
sudo ./b2 install(时间较长,20分钟)
evpp:
1、下载源码与子模块源码:
$ git clone https://github.com/Qihoo360/evpp
$ cd evpp
$ git submodule update --init --recursive
2、编译源码:
$ mkdir -p build && cd build
$ cmake -DCMAKE_BUILD_TYPE=Debug ..
$ make -j(不需要并行编译,直接make就好了,我用make -j的时候虚拟机挂了两次)
3、运行用例:
$ make test(这个会跑unittest用例,需要3~5分钟后)
$ cd evpp/build/bin
* Run a HTTP client example:
$ ./example_http_client_request01
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0306 11:45:09.464159 13230 inner_pre.cc:37] ignore SIGPIPE
I0306 11:45:09.464896 13230 client01.cc:30] Do http request
I0306 11:45:09.493073 13231 client01.cc:14] http_code=200 [ok]
I0306 11:45:09.493124 13231 client01.cc:16] HTTP HEADER Connection=close
I0306 11:45:09.493242 13231 event_loop.cc:103] EventLoop is stopping now, tid=140722561709824
I0306 11:45:09.993921 13231 event_loop.cc:93] EventLoop stopped, tid: 140722561709824
I0306 11:45:09.994107 13230 client01.cc:38] EventLoopThread stopped.
*** Run a HTTP server example:
$ ./example_httpecho
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0306 12:15:31.703927 21228 inner_pre.cc:37] ignore SIGPIPE
I0306 12:15:31.706221 21228 http_server.cc:99] http server is running
*** And in another console(模拟客户端,要在服务器运行的时候):
$ curl "http://127.0.0.1:9009/echo" -d "Hello, world"
ello, world
*Run a TCP echo server example:
$ ./example_tcpecho
* And in another console(模拟客户端,要在服务器运行的时候):
$ telnet 127.0.0.1 9099
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
================= End
ubuntu 安装 evpp的更多相关文章
- Mac OS、Ubuntu 安装及使用 Consul
Consul 概念(摘录): Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStac ...
- ubuntu安装mysql
好记性不如烂笔头,记录一下,ubuntu安装mysql的指令. 安装MySQL: sudo apt-get install mysql-server sudo apt-get install mysq ...
- ubuntu安装vim时提示 没有可用的软件包 vim,但是它被其它的软件包引用了 解决办法
ubuntu安装vim时提示 没有可用的软件包 vim-gtk3,但是它被其它的软件包引用了 解决办法 本人在ubuntu系统安装vim 输入 sudo apt-get install vim 提示 ...
- docker 1.8+之后ubuntu安装指定版本docker-engine
这边记录ubuntu安装过程,首先是官网文档 If you haven’t already done so, log into your Ubuntu instance. Open a termina ...
- debian/ubuntu安装桌面环境
apt-get install xorg apt-get install gnome 然后startx ubuntu 安装Gnome桌面 1.安装全部桌面环境,其实Ubuntu系列桌面实际上有几种桌面 ...
- 一个ubuntu phper的自我修养(ubuntu安装)
ubuntu安装篇 一.ubuntu下载 到ubuntu官网下载适合自己电脑配置的系统版本,此处不做展开. 二.制作USB启动盘 在windows下制作USB启动盘,工具是universal usb ...
- ubuntu 安装JAVA jdk的两种方法:
ubuntu 安装jdk 的两种方式: 1:通过ppa(源) 方式安装. 2:通过官网下载安装包安装. 这里推荐第1种,因为可以通过 apt-get upgrade 方式方便获得jdk的升级 使用pp ...
- [其他]Ubuntu安装genymotion后unable to load VirtualBox engine
问题: Ubuntu安装genymotion后unable to load VirtualBox engine 解决办法: 如果没有安装VirtualBox,要先安装VirtualBox. 安装Vir ...
- Ubuntu安装出现左上角光标一直闪解决方式
Ubuntu安装出现左上角光标一直闪解决方式: 01下载ubunu http://cn.ubuntu.com/download/ 02.软碟通 http://pan.baidu.com/s/1qY8O ...
随机推荐
- asp.net后台管理系统-登陆模块-路由权限控制_1
using System.Web.Routing; //重写System.Web.Routing中Initialize方法 protected override void Initialize(Req ...
- Flask实战第3天:url_for使用
我们之前是通过url来找到对应的视图函数 / => hello_world 那么url_for则是通过视图函数找到url hello world => / 演示如下 #c ...
- 【广州.NET社区线下活动】云定未来 - Azure Meetup
第2届 广州.NET线下沙龙 Azure Meetup 4月13日,第2届广州.NET线下沙龙在广州银行大厦7楼中创学院路演大厅成功举办.来自微软MVP.网易的技术专家们带来了干货满满的知识分享,即使 ...
- pyltp安装踩坑记录
LTP(Language Technology Platform)由哈工大社会计算与信息检索研究中心开发,提供包括中文分词.词性标注.命名实体识别.依存句法分析.语义角色标注等丰富. 高效.精准的自然 ...
- Android与js互相调用
有话要说: 本篇主要总结了简单的Android与js互相调用的方法. 在开发过程中遇到了需要在安卓中调用js方法的需求,于是将具体的实现过程总结成这篇博客. 效果: 其中“调用安卓方法”按钮是html ...
- 网络爬虫BeautifulSoup库的使用
使用BeautifulSoup库提取HTML页面信息 #!/usr/bin/python3 import requests from bs4 import BeautifulSoup url='htt ...
- Jmeter接口测试实战-数据传递
Jmeter接口测试实战-数据传递 接口与接口之间没有关联的测试是缺乏意义和没有灵魂的,只有数据在不同接口之间传递才能勾画出业务场景重要的链路. 我们用较为通用的http/https协议,接口普遍返回 ...
- IDEA 最新版永久破解最简单方法(版本 IntelliJ IDEA 2018.3.5)
版权声明:本文为博主原创文章,仅作为学习交流使用,请在阅读后自行删除, 未经博主允许不得转载.https://www.cnblogs.com/linck/p/10522045.html 1.官网下载专 ...
- MySQL 是如何解决幻读的
MySQL 是如何解决幻读的 一.什么是幻读 在一次事务里面,多次查询之后,结果集的个数不一致的情况叫做幻读. 而多出来或者少的哪一行被叫做 幻行 二.为什么要解决幻读 在高并发数据库系统中,需要保证 ...
- excel身份证验证(附带防止粘贴导致校验失效的函数)
一.检验函数 =IF(LEN(A1)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17" ...