1. 程式人生 > >編譯libevent源代碼(Windows)

編譯libevent源代碼(Windows)

編譯選項 out 分享 http服務 開發 什麽 winsock argc toolbar

學習筆記,只是記錄本次成功用libevent源代碼進行編譯。環境為MinGW+VS2008+Msys。

0.下載libevent庫

  http://libevent.org/ 下載stable穩定版的庫。

1.編譯

  一開始我用MinGW進行編譯的,但是總是出現問題。後來參考了這個博客:http://m.blog.csdn.net/blog/bojie5744/39698599 ,把vs的運行環境包含進來,然後再進行編譯

call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"

  ./configure ; make ; make install;

  如果不install也可以,libevent頭文件在include裏面,而生成的庫在.libs裏面,由於使用的是vs的運行環境。所以libevent源代碼編譯後的庫後綴為lib,而非以前的a文件。復制 libevent.lib;libevent_core.lib;libevent_extra.lib;(最後給出我編譯後的文件,方便沒有vs編譯環境的人下載使用。) 如果為了以後方便,可以把include目錄裏文件復制到開發環境的include裏面,而.libs裏面的三個文件也可以拷貝到mingw的lib文件夾裏面。

2.libevent測試代碼

技術分享
1 #include <winsock2.h>
2 #include <event2/event.h>
3 #include <event2/event_struct.h> 
4 
5 int main(int argc, char **argv)
6 {
7     event timeout;
8     return (0);
9 }
技術分享

  編譯選項為

  g++ test.cpp -Iinclude -L. -levent -lws2_32

  註意測試的編譯還是不通過的。要把libevent.lib 文件名改為event.lib就可以通過了,具體為什麽就還不清楚。至於為什麽MS系的lib庫和mingw的的a庫文件有什麽區別,在Windows下mingw高級版本,兩者是沒有區別的,都是可以調用使用的。

3.libevent自帶的http服務器源碼(在sample中的http-server.c)

技術分享 View Code

  g++ http-server.c -Iinclude -L. -levent -lws2_32

技術分享

  這樣就可以當作服務器了。

  

  libevent編譯後的庫下載地址: http://files.cnblogs.com/files/wunaozai/libevent.zip

  from: http://www.cnblogs.com/wunaozai/p/4550084.html

編譯libevent源代碼(Windows)