採用的版本是"libevent-1.4.13-stable.tar.gz", 源碼壓縮包可以在官方網站上下載
http://libevent.org/
目前比較新的是2.x的版本,英文doc也可以下載。
本文環境:vmware10虛擬機 centos6.5 64位和32位,主要是64位操作
1、解壓安裝包
注意:請不要講壓縮包放在共享目錄中來執行安裝操作,放到linux自己的文件夾下,比如/home/xxx
tar -zxvf libevent-1.4.13-stable.tar.gz 解壓後得到目錄libevent-1.4.13-stable
文件列表如圖
“圖片唄csdn吃了”囉嗦一句,初學者會發現裏面沒有makefile文件,只有makefile.in和makefile.am,實際是通過運行configure腳本來生成makefile文件,這個編譯選項是可配置的。configure等幾個腳本自動判斷操作系統的環境,包括cpu類型、操作系統等信息,生成匹配的makefile文件。腳本寫的很強大很複雜,核心腳本configure大概2萬多行。
2、編譯安裝
配置方法網上有一堆,但基本上沒有怎麼區分32位和64位的介紹
網上的方法是
#./configure --prefix=/usr
#make
#make install
OK,完成
我是在64位機上操作,執行完後,沒有太關注過程,相關庫放到了/usr/lib目錄下,且沒有生成link文件,執行ldconfig也報錯,具體原因分析後面補充。
我們知道64位的linux系統的動態庫是分lib和lib64的,其中lib中放置的是32位庫,這個可以通過file xx/lib/xxx.so查看得到信息,如下圖所示爲32位動態庫
插一句,如果64位機器想要編譯或者運行32位程序,請安裝glibc-devel.i686,注意版本,網上有些指導沒有注意到32位和64位的區分,只說明安裝glibc-devel,用yum search glibc可以得到如圖所以,i686爲32位,x86_64是64位機,devel爲開發用版本,包含的東西要多些。
有點扯遠了,64位機我們希望將動態庫安裝到lib64目錄下,我們可以執行
#./configure --help 打開幫助頁面,如下圖我們可以找到libdir也是可以配置的
那麼我們就可以設置
#./confure--libdir=/usr/local/lib64,執行完畢後可以看到create 一些makefile文件
“圖片被CSDN吃了”
打開makefile文件,可以看到我們修改的參數libdir已經生效
“圖片被CSDN吃了”
繼續執行編譯和安裝命令
#make && make install
執行完畢後,可以查看到libevent相關的動態和靜態庫安裝到了/usr/local/lib64目錄下,頭文件
“圖片被CSDN吃了”
如果安裝路徑不合適需要,重新安裝,請確保makefile沒有改動的前提下,執行#make uninstall,操作,可以看到刪除了頭文件和庫文件、和一些幫助文件
“圖片被CSDN吃了”
回過頭來解決ldconfig報錯的問題,之前的錯誤make install後,報錯
原因是我把libevent安裝文件放在共享目錄下,共享目錄下是win格式下的文件系統,linux無法做鏈接文件操作,所以創建鏈接失敗,進入到lib64下可以到所有libevent的so文件都不是link。解決方法,將安裝文件放到linux系統自己的目錄下,如/home/xxx。更換目錄無錯誤了,且lib64目錄下的動態庫也是鏈接形式存在
另外還有就是在arm平臺下編譯(安裝)libevent,這個網上有很多資料,抽空也試試看,走一遍看看是否有坑。