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
转载于:https://www.cnblogs.com/lsgxeva/p/10718979.html
ubuntu 安装 evpp相关推荐
- Ubuntu安装MongoDB
https://jingyan.baidu.com/article/e5c39bf5f5ddd539d76033a9.html Ubuntu安装MongoDB4.0: https://www.jian ...
- ubuntu安装OpenCV详细教程(建议收藏)
记录一篇"如何安装ubuntu下C++接口的opencv"的文章.由于转载格式有问题,直接贴个链接:ubuntu安装opencv的正确方法 注意:本人根据此博客安装遇到的问题:2. ...
- Linux/ubuntu 安装 redis 4.0报错解决:redis-server.service: Can't open PID file /var/run/redis/redis-server.
此文首发于我的个人博客:Linux/ubuntu 安装 redis 4.0报错解决:redis-server.service: Can't open PID file /var/run/redis/r ...
- debian,ubuntu 安装mongodb 允许外网访问,修改端口,设置用户和密码
使用apt安装mongodb: apt update && apt install mongodb 查看运行状态: systemctl status mongodb.service 结 ...
- ubuntu安装KVM
ubuntu安装KVM 现在官网下载ubuntu镜像,桌面版或者服务端都可,这里以桌面端为例. 安装之前确保磁盘有足够大的空间(这很重要) 安装KVM sudo apt install qemu-kv ...
- 解决Ubuntu安装依赖问题
解决Ubuntu安装依赖问题 解决Ubuntu安装依赖问题 最主要问题,修改的国内镜像源可能不是对应的ubuntu版本,大部人直接找了个镜像源就复制到source.list里面了,其实需要对应版本的, ...
- Ubuntu安装Ceres库-安装依赖时报错:E:无法定位软件包 libcxsparse3.1.2_朱国鑫的博客-CSDN博客
Ubuntu安装Ceres库-安装依赖时报错:E:无法定位软件包 libcxsparse3.1.2_朱国鑫的博客-CSDN博客
- ubuntu 安装Pangolin 过程_余辉亮的学习笔记的博客-CSDN博客_pangolin安装
ubuntu 安装Pangolin 过程_余辉亮的学习笔记的博客-CSDN博客_pangolin安装
- Ubuntu安装、使用postgresql数据库
Ubuntu安装.使用postgresql数据库 $ sudo apt-get install postgresql (端口为5432) $ sudo apt-get install postgre ...
最新文章
- TBContact -- 导出ThunderBird邮件地址本
- java 2wei shuzu_JavaScript 2维数组(JavaScript 2 dimension array)
- ORA-01925:maximum of 80 enabled roles exceeded
- SQL SERVER 2005允许自定义聚合函数
- Educational Codeforces Round 47 (Rated for Div. 2) :E. Intercity Travelling
- python多线程操作列表_详解Python多线程下的list
- 部署java项目_企业最看重什么样的Java人才?
- python辗转相除法求最小公倍数_Python实现利用最大公约数求三个正整数的最小公倍数示例...
- Win11怎么把右键刷新调出来?
- vim 树形目录插件NERDTree安装
- java operator overload_c++下的 overload operator
- php(wap)获取手机号码,WAP获取访客手机号码
- 在Unity中创建基于Node节点的编辑器 (二) 窗口序列化
- Taro 小程序开发大型实战(三):实现微信和支付宝多端登录
- Android 仿今日头条视频播放器实现(不使用节操哟)
- 大多数企业数字化转型的真正目的其实只是为了能多裁点人
- 数字电子技术(四)组合逻辑电路
- WebSocket区分不同客户端方法
- javacv 视频转换
- java仿QQ聊天软件OIM艰辛之路
热门文章
- gin gorm插入数据
- phpstudy(小皮面板)Deepin安装脚本
- 【收藏】keepalived nginx服务检测脚本
- 【收藏】Vue+elementUI的this.$refs.对象名.方法名的理解
- 将本地docker镜像推送到阿里云镜像仓库
- Python Django 文件上传代码示例
- php连接数据库语言,PHP语言连接MYSQL数据库实例代码
- springboot中接口实例化_疫情爆发在家闲出屁的我,梳理一下SpringBoot知识点
- 利用指针的指针,修改被调函数的局部值【传引用】
- Java资深反射玩家