lua curl動態鏈接庫編譯安裝


關於lua curl的資料網上並不是很多。找來找去就那么幾個,所以我絕得很有必要把我的經驗記下來,以防下次忘記
                                                                                                                                         ---好記性不如爛筆頭。
如果在網上(當然是Google)搜索掛關鍵字“lua curl”或“luacurl”,你搜索的頭兩條數據很可能是不一樣。因為關於lua的curl庫有兩個:luacurl和Lua-cURL。
如果你打開了這個網址“http://curl.haxx.se/libcurl/lua/”,你就會看這樣一段話:

There are two different efforts:

  1.  luacurl adopts the easy interface
  2. Lua-cURL is aiming for a full-fledged libcurl binding (easy/multi/share interface) to the functionality of Lua

Credits
luacurl is written by Alexander Marinov and Enrico Tassi

Lua-cURL is written by J�rgen H�tzel

 一、安裝Lua-cURL

 看着好像是兩條但是其實有三個版本:這里我們先說說第二個-----Lua-cURL。

這里有兩個選擇:

這里我選的git上的源碼,因為我發現git上的更新一點。git上的最新版本是0.2.3,luaforge上最新的是0.2。具體步驟如下:
==================安裝cURL==================
# tar zxf 0.2.3
# cd lua-curl-0.2.3
# cmake directory      //(directory為CMakeList.txt所在目錄)
# export LUA_INCLUDE_DIR=/usr/include/lua5.1
# make  CC=gcc
# make install CC=gcc
安裝以后會在當前目錄下生成cURL.so的動態鏈接庫,將它復制到相應的目錄,下面是我的目錄:
# cp cURL.so /usr/local/lib/lua/5.1/
這樣在lua中直接使用require("cURL");就可以。
 
二、安裝luacurl——lua-curl-0.3.0

 為什么說看着是兩個版本,其實是三個呢,因為luacurl有兩個版本:

這兩個分別對應的最新版Linux版本是: luacurl-1.2.1lua-curl_0.3.0.orig.tar.gz
先說lua-curl_0.3.0,具體步驟如下:
# tar zxf lua-curl_0.3.0.orig.tar.gz
# cd lua-curl-0.3.0
# make
# make install
這里其實我在執行make命令的時候遇到了不少問題。最重要的一個問題就是沒有lua5.1.pc,錯誤提示如下:
 
Package lua5.1 was not found in the pkg-config search path. 
Perhaps you should add the directory containing `lua5.1.pc'
to the PKG_CONFIG_PATH environment variable
No package 'lua5.1' found
 
提示的意思是缺少lua5.1.pc這個文件,至於什么是*.pc文件, 請參考這里解決這個問題最主要就是先查看系統中是否已有lua.pc這個文件,一般在/usr/lib/pkgconfig或/usr/lib64/pkgconfig,如果發現沒有這個的話,在centos下可以使用如下命令查看那些安裝包支持lua.pc:
# yum provides \*/lua.pc
通常會列出幾個選項,同時會顯示安裝完以后,lua.pc會在哪個目錄下。這里列出的安裝包應該是lua-devel幾個不同的版本。選第一個就行,安裝完以后,相應的目錄下應該就會有lua.pc了。然后在當前目錄建立lua.pc的軟連接:
# ln -s lua.pc lua5.1.pc
這樣就不會出現這個問題了,但是第二個問題出現了:
 
libtool --silent --tag=CC --mode=link cc \
                -rpath -o liblua5.1-curl.la \
                -version-info 0:0:0 \
                -lcurl lua-curl.lo luabind.lo
libtool: link: only absolute run-paths are allowed
make: *** [liblua5.1-curl.la] 錯誤 1
 
“libtool: link: only absolute run-paths are allowed ”這句話描述的是執行libtool的時候,-rpath后面的路徑必須是絕對路徑才行。我查看了一下原來的Makefile里是這樣寫的:
 
注意這里處於選中狀態的LUA_RPATH的位置,在上面的錯誤提示中,此處正好是空,所以這里需要一個絕對路徑,具體應該寫什么路徑呢,看這里:
紅色方框中的意思是要將存放*.so的目錄賦給LUA_RPATH,所以這里我寫的是
LUA_RPATH:=/usr/local/lib/lua/5.1/
將這一行放在lua50 stuff的endif的后面:
進行完以上操作,就可以順利的執行make和make install了。執行完make install后,會在剛才設置得LUA_RPATH目錄下看到一個軟連接
這樣就安裝完成了。
 
  三、安裝luacurl——luacurl-1.2.1
 
 其實說到luacurl-1.2.1的編譯安裝,基本上全是淚啊,各種不給力啊。
方法一:
luacurl-1.2.1解壓后只有兩個文件:luacurl.c和CMakeLists.txt。所以只能使用cmake ./來執行,但是我在執行完# cmake ./    # make   #make install 以后並沒有發現有動態鏈接庫庫*.so文件生成,更不要說應該有的luacurl.so了。我這里行不通!
方法二:
第二種方法其實不應該叫做一種方法,應該是一種取巧的方式,我在加壓后的luadist安裝包的lib/lua目錄下找到了我所需要的luacurl.so文件,於是就拷貝之:
# cp lib/lua/luacurl.so /usr/local/lib/lua/5.1/
結果可以。好吧應該也能算一種方法吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM