libevent 2.1.12

libevent 2.1.12

Pritesh NandgaonkarLorenzo Blasa 维护。



libevent 2.1.12

  • Niels Provos 和 Nick Mathewson 编写

libevent logo

Appveyor Win32 Build Status Travis Build Status Coverage Status Join the chat at https://gitter.im/libevent/libevent

0. 建设和安装(简要)

Autoconf

 $ ./configure
 $ make
 $ make verify   # (optional)
 $ sudo make install

CMake(通用)

以下列出了 Libevent 特定的 CMake 变量及其默认值()。

# Type of the library to build (SHARED or STATIC)
# Default is: SHARED for MSVC, otherwise BOTH
EVENT__LIBRARY_TYPE:STRING=DEFAULT

# Installation directory for CMake files
EVENT_INSTALL_CMAKE_DIR:PATH=lib/cmake/libevent

# Enable running gcov to get a test coverage report (only works with
# GCC/CLang). Make sure to enable -DCMAKE_BUILD_TYPE=Debug as well.
EVENT__COVERAGE:BOOL=OFF

# Defines if Libevent should build without the benchmark executables
EVENT__DISABLE_BENCHMARK:BOOL=OFF

# Define if Libevent should build without support for a debug mode
EVENT__DISABLE_DEBUG_MODE:BOOL=OFF

# Define if Libevent should not allow replacing the mm functions
EVENT__DISABLE_MM_REPLACEMENT:BOOL=OFF

# Define if Libevent should build without support for OpenSSL encryption
EVENT__DISABLE_OPENSSL:BOOL=OFF

# Disable the regress tests
EVENT__DISABLE_REGRESS:BOOL=OFF

# Disable sample files
EVENT__DISABLE_SAMPLES:BOOL=OFF

# If tests should be compiled or not
EVENT__DISABLE_TESTS:BOOL=OFF

# Define if Libevent should not be compiled with thread support
EVENT__DISABLE_THREAD_SUPPORT:BOOL=OFF

# Enables verbose debugging
EVENT__ENABLE_VERBOSE_DEBUG:BOOL=OFF

# When cross compiling, forces running a test program that verifies that Kqueue
# works with pipes. Note that this requires you to manually run the test program
# on the the cross compilation target to verify that it works. See CMake
# documentation for try_run for more details
EVENT__FORCE_KQUEUE_CHECK:BOOL=OFF

运行 cmake -LAH <sourcedir_path> 可以找到更多变量。

CMake(Windows)

安装 CMake: https://www.cmake.org

 $ md build && cd build
 $ cmake -G "Visual Studio 10" ..   # Or whatever generator you want to use cmake --help for a list.
 $ start libevent.sln

CMake(Unix)

 $ mkdir build && cd build
 $ cmake ..     # Default to Unix Makefiles.
 $ make
 $ make verify  # (optional)

1. 构建和安装(深度介绍)

Autoconf

要构建Libevent,请输入以下命令

 $ ./configure && make

(如果您是从git仓库获取的Libevent,则需要首先运行包含的"autogen.sh"脚本,以便生成配置脚本。)

可以通过运行以下命令执行回归测试

 $ make verify

通过以下命令以root权限安装

 $ make install

在报告任何问题之前,请运行回归测试。

要启用低级跟踪,以以下方式构建库

 $ CFLAGS=-DUSE_DEBUG ./configure [...]

标准的配置标志应该可以正常工作。特别是,请参阅

 --disable-shared          Only build static libraries.
 --prefix                  Install all files relative to this directory.

配置脚本还支持以下标志

 --enable-gcc-warnings     Enable extra compiler checking with GCC.
 --disable-malloc-replacement
                           Don't let applications replace our memory
                           management functions.
 --disable-openssl         Disable support for OpenSSL encryption.
 --disable-thread-support  Don't support multithreaded environments.

CMake(Windows)

(请注意,autoconf目前是Libevent最成熟和受支持的构建环境;此处提供的CMake说明是新的且实验性的,尽管它们应该是稳健的。我们希望CMake在Libevent的将来版本中仍然得到支持,并会努力使其成为可能。)

首先安装https://www.cmake.org

要使用Microsoft Visual studio构建Libevent,请打开"Visual Studio命令提示符"并输入

$ cd <libevent source dir>
$ mkdir build && cd build
$ cmake -G "Visual Studio 10" ..   # Or whatever generator you want to use cmake --help for a list.
$ start libevent.sln

在上面的命令中,".."指向包含Libevent源代码的目录。您可以创建其他构建目录,从而从同一源树构建多个版本(不同编译时间设置)。

强烈建议使用CMake而不是像autoconf常规行为那样"在源代码中"构建时,选择"从源代码外"进行构建。

"NMake Makefiles" CMake生成器可以用于通过命令行完全构建。

要列出可用于项目的设置,可以输入

$ cmake -LH ..

GUI

CMake还提供一个GUI,允许您指定要放置构建(二进制)目录的源目录和输出目录。

2. 有用链接

最新发布的Libevent版本,请访问官方网站: http://libevent.org/

有一份相当不错的正在进行中的手册,可在以下链接找到: http://www.wangafu.net/~nickm/libevent-book/

要访问Libevent的最新开发版本,请通过以下方式访问我们的Git仓库:

$ git clone https://github.com/libevent/libevent.git

您可以在以下网址在线浏览git仓库:

https://github.com/libevent/libevent

要报告错误、问题或请求新功能

补丁https://github.com/libevent/libevent/pulls

好吧,那些实际上并不是真正的 补丁。您可以进行分叉、修改并点击“创建拉取请求”按钮。您仍然可以通过邮件列表提交正常的git补丁。

错误、特性 [RFC] 和问题https://github.com/libevent/libevent/issues

或者您也可以通过邮件列表来完成。

还有一个libevent-users邮件列表,用于讨论Libevent的使用和开发

http://archives.seul.org/libevent/users/

3. 致谢

以下人员对建议、想法、代码或修复错误提供了帮助

  • Samy Al Bahra
  • Antony Antony
  • Jacob Appelbaum
  • Arno Bakker
  • Weston Andros Adamson
  • William Ahern
  • Ivan Andropov
  • Sergey Avseyev
  • Avi Bab
  • Joachim Bauch
  • Andrey Belobrov
  • Gilad Benjamini
  • Stas Bekman
  • Denis Bilenko
  • Julien Blache
  • Kevin Bowling
  • Tomash Brechko
  • Kelly Brock
  • Ralph Castain
  • Adrian Chadd
  • Lawnstein Chan
  • Shuo Chen
  • Ka-Hing Cheung
  • Andrew Cox
  • Paul Croome
  • George Danchev
  • Andrew Danforth
  • Ed Day
  • Christopher Davis
  • Mike Davis
  • Frank Denis
  • Antony Dovgal
  • Mihai Draghicioiu
  • Alexander Drozdov
  • Mark Ellzey
  • Shie Erlich
  • Leonid Evdokimov
  • Juan Pablo Fernandez
  • Christophe Fillot
  • Mike Frysinger
  • Remi Gacogne
  • Artem Germanov
  • Alexander von Gernler
  • Diego Giagio
  • Artur Grabowski
  • Diwaker Gupta
  • Kuldeep Gupta
  • Sebastian Hahn
  • Dave Hart
  • Greg Hazel
  • Nicholas Heath
  • Michael Herf
  • Savg He
  • Mark Heily
  • Maxime Henrion
  • Michael Herf
  • Greg Hewgill
  • Andrew Hochhaus
  • Aaron Hopkins
  • Tani Hosokawa
  • Jamie Iles
  • Xiuqiang Jiang
  • Claudio Jeker
  • Evan Jones
  • Marcin Juszkiewicz
  • George Kadianakis
  • Makoto Kato
  • Phua Keat
  • Azat Khuzhin
  • Alexander Klauer
  • Kevin Ko
  • Brian Koehmstedt
  • Marko Kreen
  • Ondřej Kuzník
  • Valery Kyholodov
  • Ross Lagerwall
  • Scott Lamb
  • Christopher Layne
  • Adam Langley
  • Graham Leggett
  • Volker Lendecke
  • Philip Lewis
  • 周丽
  • 大卫·利本齐
  • 林 Yan
  • 莫舍·利特文
  • 西蒙·刘
  • 米切尔·利文斯顿
  • 汉内·马赫雷
  • 卢博米尔·马林诺夫
  • 阿比里奥·马奎斯
  • 尼古拉·马提扬诺夫
  • 阿贝尔·马修
  • 尼克·马修松
  • 詹姆斯·曼森
  • 尼古拉斯·马里奥特
  • 安德烈·马特维耶夫
  • 凯特琳·默塞尔
  • 多戈伯特·米切尔森
  • 安德烈亚·蒙特菲索科
  • 穆恩苏尔·莫菲德
  • 米娜·纳吉布
  • 费利克斯·诺沃钦
  • 特隆德·诺尔比
  • 林努斯·诺德伯格
  • 理查德·纽伯格
  • 乔恩·奥伯海德
  • 约翰·奥利
  • 菲尔·奥莱斯隆
  • 阿列克谢·奥泽茨基
  • 戴夫·帕切科
  • 德里克·帕拉斯
  • 塔西洛·冯·帕谢瓦尔
  • 卡塔林·帕图列亚
  • 帕特里克·佩莱蒂埃
  • 西蒙·佩雷拉
  • 丹·佩特罗
  • 皮埃尔·帕纽夫
  • 阿玛琳·帕奥斯瓦迪
  • 雷恩·菲利普斯
  • 季米特里·皮斯基尤列夫
  • 帕维尔·普列索夫
  • 乔恩·波兰
  • 罗马·普尔斯
  • 内特·R
  • 罗伯特·兰森
  • 巴尔int 雷切伊
  • Bert JW Regeer
  • Nate Rosenblum
  • 彼得·罗辛
  • Maseeb 阿卜杜勒·卡迪尔
  • 王 坪
  • Alex S
  • جیپی سای
  • 汉娜·施罗特
  • 拉尔夫·施密特
  • 迈克·斯梅利
  • 史蒂夫·斯奈德
  • 尼尔·索弗
  • 杜格·宋
  • 宋 东升
  • 汉斯·索瓦
  • 约阿基姆·索德博格
  • 约瑟夫·斯帕达维奇亚
  • 凯文·斯普林博恩
  • 哈伦·斯滕
  • 安德鲁·斯温
  • 费伦茨·萨拉伊
  • 布罗迪·西斯菲尔德
  • 贾森·托法莱蒂
  • 布莱恩·阿特巴克
  • 吉斯勒·范恩
  • 巴斯·韦尔芬
  • 康斯坦丁·维鲁廷
  • 科林·瓦特
  • Zack Weinberg
  • Jardel Weyrich
  • Jay R. Wren
  • Zack Weinberg
  • 张 博迈
  • Alejo
  • Alex
  • 塔拉尔
  • 丙烷丁烷
  • masksqwe
  • mmadia
  • yangacer
  • 安德烈·斯克里阿宾
  • basavesh.as
  • billsegall
  • 比尔·福伊恩
  • 克里斯托弗·威利
  • 大卫·帕希奇
  • 爱德·舒特恩
  • 埃德华多·帕尼塞特
  • 简·海伦
  • jer-gentoo
  • Joaqim Söderberg
  • kirillDanshin
  • lzmths
  • 马尔库斯·桑德伯格
  • 马克斯·门托瓦伊
  • 马泰斯·D
  • 马蒂亚斯·多拉克
  • 尼拉贾·巴德兰尼
  • 尼克·马修松
  • 莱纳·凯勒
  • 崔民国
  • 托马斯·伯纳德
  • 克拉克·小宝
  • zeliard
  • 张 宇
  • 库尔特·洛克克斯
  • 西莫内·巴索
  • 弗拉德·谢尔班
  • 蒂姆·亨滕纳尔
  • Breaker
  • lee-johnson
  • Philip Prindeville
  • Vis Virial
  • 安德烈亚斯·古斯塔夫松
  • 安德烈·奥科什金
  • an-tao
  • baixiangcpp
  • Bernard Spil
  • Bogdan Harjoc
  • 卡罗尔·马塞洛·阿雷纳斯·贝尔ón
  • 大卫·本杰明
  • 大卫·迪塞尔多普
  • 德米特里·阿利莫夫
  • 多米尼克·陈
  • dpayne
  • ejurgensen
  • 弗雷德里克·斯特鲁普
  • 贡萨洛·里贝罗
  • 詹姆士·辛治
  • 简·比奇
  • 方 睿
  • 卢兹尼克·热里
  • 何塞·路易斯·米兰
  • 金谷 亜弥
  • 张 宇
  • lightningkay
  • 卢克·dashjr
  • 马尔钦·舍维茨基
  • 马克西米利安·布nersky
  • 玛雅·拉希什
  • 穆尔图尔·德米尔滕
  • 奈特·弗朗西斯
  • 尼古拉伊·埃迪加耶夫
  • 菲利普·赫伦
  • Redfoxmoon
  • stenn
  • SuckShit
  • The Gitter Badger
  • tim-le
  • Vincent JARDIN
  • 张 晓涛
  • 刘晓州
  • 焦永清
  • Cooper Enji
  • 李晓晖
  • 金成镇
  • 托比厄斯·斯托克曼
  • 尤里·科尔热茨基
  • 赵志豪蒙
  • 皮尔斯·洛佩兹
  • 员工机
  • keith_smiley
  • jeremyerb
  • 法布里斯·方丹
  • wenyg
  • 阿列克萨尼尔-梅尔尼科夫
  • ayuseleznev
  • 成国龙
  • 迪莫·马尔科夫
  • dota17
  • 范克
  • 卡西アク
  • 里亚托夫斯基
  • 马里奥·埃门拉乌尔
  • 迈克尔·大卫萨弗
  • 莫黄
  • 尼克·格里法卡
  • 尼古拉·J·布利安
  • 保罗·奥斯本
  • 菲利普·洪堡
  • -hashihara)
  • 威廉·A·罗威尔少校
  • 杨勇生

如果我们遗忘了您的名字,请联系我们。