1. 程式人生 > >靜態編譯libevent

靜態編譯libevent

libevent簡介

libevent是一個事件觸發的網路庫,適用於windows、linux、bsd等多種平臺,內部使用select、epoll、kqueue等系統呼叫管理事件機制。著名分散式快取軟體memcached也是libevent based,而且libevent在使用上可以做到跨平臺,而且根據libevent官方網站上公佈的資料統計,似乎也有著非凡的效能。

linux下編譯

這個就非常簡單了,

./configure
make
make install

三部曲搞定

windows下編譯就沒這麼簡單了

最新的stable版本是2.0.21,對原始碼不需要任何修改即可,老的版本可以需要在event_iocp.c  evthread_win32.c  listener.c中加入

#define _WIN32_WINNT 0x0500

確保程式碼中用到某些windows的函式可以知道系統版本。

開啟您visual studio tool中的開發人員工具,進入您libevent程式碼目錄,(這裡cd命令有個坑的,不同分割槽跳轉有問題,需要 cd /d dir,強制跳轉),然後輸入

nmake /f Makefile.nmake

使用vs自帶的nmake來編譯,之後會生成libevent.lib libevent_core.lib libevent_extras.lib,這樣您所需要的libevent的靜態檔案庫就生成了,下來就將include和lib引入到您的工程中就可以使用了。