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的将来版本中仍然得到支持,并会努力使其成为可能。)
要使用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·罗威尔少校
- 杨勇生
如果我们遗忘了您的名字,请联系我们。