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位的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,這個網上有很多資料,抽空也試試看,走一遍看看是否有坑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章