linux x86(64位/32位)系統 libevent 編譯安裝說明
採用的版本是"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位機器想要編譯或者執行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,這個網上有很多資料,抽空也試試看,走一遍看看是否有坑。