windows 平臺使用 VS2017 編譯 libevent 源碼

一 依賴庫編譯

先要將其依賴的庫編譯好,其中openssl需要編譯到libevent中牛柒,編譯成libevent_openssl.lib庫,zlib在新版本中只有示例用到驻售。

1)windows 平臺使用 VS2017 編譯 openssl 源碼

參考前面的文章

openssl 默認編譯到 C:\Program Files (x86)\OpenSSL 目錄熟菲,包含收文件看政,lib文件和dll文件,待會需要配置此路徑抄罕,或者直接把編譯好的openssl庫復制到指定路徑中允蚣。

2)使用 VS2017 編譯 zlib 源碼

1) 官方網(wǎng)站

http://www.zlib.net/

2)編譯工具:VS2017社區(qū)版本

下載地址

http://ffmpeg.club/tools_download.html

3)下載zlib1.2.11源碼

下載地址

http://ffmpeg.club/libevent.html

4) 編譯步驟

(1)進入控制臺(運行 CMD),或者編寫批處理bat文件

(2)運行vs編譯環(huán)境

打開菜單中VS2017中有對應(yīng)的命令行工具呆贿,把地址復制過來

編譯32位庫版本

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsamd64_x86.bat

編譯64位庫版本

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"

運行后出現(xiàn)如下內(nèi)容?

(3)進入zlib源碼嗎目錄

cd zlib-1.2.11

(4)用nmake編譯

nmake -f win32/Makefile.msc -

編譯好后生成的動態(tài)庫 zdll.dll zdll.lib 和靜態(tài)庫zlib.lib都在zlib-1.2.11根目錄下嚷兔。

二 libevent編譯環(huán)境準備

操作系統(tǒng):windows 10 64位

編譯工具:VS2017社區(qū)版本

下載地址

http://ffmpeg.club/tools_download.html

libevent 2.1.8 源碼

下載地址

http://www.libevent.net/download

三 編譯libevent源碼

1)依賴安裝編譯

編譯工具:VS2017社區(qū)版本

下載地址

http://ffmpeg.club/tools_download.html

編譯好openssl安裝后復制到 D:\lib\openssl 路徑

libevent_openssl.lib 庫需要,如果不用此庫可以不編譯openssl

編譯好zlib 安裝在D:\libevent\zlib-1.2.11\

新版本libevent已經(jīng)和zlib分離做入,但是示例有用zlib谴垫,如果不需要此示例可以不編譯zlib

2) 編譯步驟

(1)進入控制臺(運行 CMD),或者編寫批處理bat文件

(2)運行vs編譯環(huán)境

打開菜單中VS2017中有對應(yīng)的命令行工具母蛛,把地址復制過來

編譯32位庫版本

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsamd64_x86.bat

編譯64位庫版本

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"

(3)進入libevent源碼嗎目錄

cd libevent-master

(4)清理之前的編譯

nmake /f Makefile.nmake clean

(5)編譯libevent

nmake /f Makefile.nmake OPENSSL_DIR=D:\lib\openssl

OPENSSL_DIR 是openssl庫的路徑,之前版本需要制定zlib庫路徑乳怎,新版本不需要

(6)編譯包含了libevent的庫項目和示例項目彩郊,編譯的示例項目由于用了zlib并且openssl版本比較舊,所以會產(chǎn)生問題

3)編譯中出現(xiàn)的問題

(1)示例中的openssl問題

出現(xiàn)的問題

編譯錯誤蚪缀、會顯示找不到openssl的ssleay32.lib和libeay32.lib庫

原因

舊版本的openssl和新版本采用不同庫名

解決方案

打開test目錄下的Makefile.nmake

找到 SSL_LIBS=..\libevent_openssl.lib $(OPENSSL_DIR)\lib\libeay32.lib $(OPENSSL_DIR)\lib\ssleay32.lib gdi32.lib User32.lib

修改為 SSL_LIBS=..\libevent_openssl.lib $(OPENSSL_DIR)\lib\libssl.lib $(OPENSSL_DIR)\lib\libcrypto.lib gdi32.lib User32.lib

(2)示例中的zlib問題

出現(xiàn)的問題

默認不編譯zlib示例秫逝,設(shè)置編譯后找不到zlib庫和頭文件

解決方案

在編譯libevent之前設(shè)置編譯zlib示例

修改WIN32-Code\nmake\event2\event-config.h

添加#define EVENT__HAVE_LIBZ

修改原因在示例代碼test\regress_bufferevent.c 1382行中做了如下判斷

#ifdef EVENT__HAVE_LIBZ

LEGACY(bufferevent_zlib, TT_ISOLATED),

#else

{ "bufferevent_zlib", NULL, TT_SKIP, NULL, NULL },

#endif

修改zlib示例的編譯項目

打開test目錄下的Makefile.nmake

修改LIBS,設(shè)置zlib庫文件路徑

LIBS=..\libevent.lib ws2_32.lib shell32.lib advapi32.lib D:\libevent\zlib-1.2.11\zdll.lib

修改CFLAGS添加zlib頭文件路徑

CFLAGS=/I.. /I../WIN32-Code /I../WIN32-Code/nmake /I../include /I../compat /DHAVE_CONFIG_H /DTINYTEST_LOCAL $(SSL_CFLAGS) -ID:\libevent\zlib-1.2.11

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末询枚,一起剝皮案震驚了整個濱河市违帆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌金蜀,老刑警劉巖刷后,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異渊抄,居然都是意外死亡尝胆,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門护桦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來含衔,“玉大人,你說我怎么就攤上這事√叭荆” “怎么了缓呛?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長杭隙。 經(jīng)常有香客問我哟绊,道長,這世上最難降的妖魔是什么寺渗? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任匿情,我火速辦了婚禮,結(jié)果婚禮上信殊,老公的妹妹穿的比我還像新娘炬称。我一直安慰自己,他們只是感情好涡拘,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布玲躯。 她就那樣靜靜地躺著,像睡著了一般鳄乏。 火紅的嫁衣襯著肌膚如雪跷车。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天橱野,我揣著相機與錄音朽缴,去河邊找鬼。 笑死水援,一個胖子當著我的面吹牛密强,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蜗元,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼或渤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了奕扣?” 一聲冷哼從身側(cè)響起薪鹦,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎惯豆,沒想到半個月后池磁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡楷兽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年框仔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拄养。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡离斩,死狀恐怖银舱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情跛梗,我是刑警寧澤寻馏,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站核偿,受9級特大地震影響诚欠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜漾岳,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一轰绵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧尼荆,春花似錦左腔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至巧还,卻和暖如春鞭莽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背麸祷。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工澎怒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人阶牍。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓丹拯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親荸恕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345