linux centos 编译luabind-0.9.1 动态库 静态库
luabind下載
?luabind-0.9.1 下載地址 :http://download.csdn.net/download/yzf279533105/10109861
編譯步驟
一. 需先編譯好lua,編譯好靜態庫即可,編譯lua的具體步驟如下:
? ? 1. lua5.1.5 下載地址:http://download.csdn.net/download/yzf279533105/10109795,
? ? ? ? 注意:貌似使用lua5.2版本來編譯luabind會出現各種奇怪的報錯,所以拿lua5.1做測試
? ? 2. 從上面的下載地址下載得到lua-5.1.5.tar.gz壓縮包,筆者這里是放在了/home目錄下,然后解壓得到lua根目錄,
? ? ? ? 即/home/lua-5.1.5
? ? 3. 進入lua的代碼目錄,即/home/lua-5.1.5/src
? ? 4.?執行命令 yum install readline-devel ?這是由于lua編譯依賴readline庫,而其依賴ncurses庫,但沒有指定
? ? 5.?執行命令 vim Makefile 打開makefile文件
? ? 6. 修改 CFLAGS= -O2 -Wall $(MYCFLAGS) ?改為 CFLAGS= -O2 -Wall $(MYCFLAGS) -fPIC?
? ? ? ?也就是在該行末尾添加了-fPIC?用來表示編譯位置無關代碼,這條非常重要,不然后面 編譯luabind時會報錯,
? ? ? ?修改完成后保存該makefile文件
? ? 7.?回到上層目錄,即回到目錄/home/lua-5.1.5,執行命令 make linux 開始編譯,后面的linux表當前平臺為linux
? ? 8.?即可在lua代碼目錄,即 /home/lua-5.1.5/src目錄下 得到編譯出來的靜態庫liblua.a
二. 需先編譯好boost
? ? (其實不是編譯boost,是需要解壓后,編譯出可執行程序bjam即可,后面需要使用該bjam文件來編譯luabind)
? ? ? 編譯boost的具體步驟請參考:http://blog.csdn.net/yzf279533105/article/details/77658367
三. ?從上面的luabind下載地址下載得到壓縮包:luabind-0.9.1.tar.gz
? ? 1. 解壓,至此筆者解壓后的
? ? ? ? luabind-0.9.1 根目錄為:/home/luabind-0.9.1
? ? ? ? lua-5.1.5 根目錄為:/home/lua-5.1.5 (根據步驟一,已編譯出靜態庫liblua.a)
? ? ? ? boost-1.55 根目錄為:/home/boost_1_55_0(根據步驟二,已產生可執行程序bjam)
? ? 2. 在lua5.1.5根目錄即/home/lua-5.1.5 新建文件夾?lib,然后把步驟一編譯出來的 liblua.a復制一份拷貝到該目錄下,
? ? ? ? 后面編譯luabind時需鏈接用
? ? 3. 在lua5.1.5根目錄即/home/lua-5.1.5 新建文件夾?include,然后把lua代碼目錄即/home/lua-5.1.5/src/目錄下
? ? ? ? 的lauxlib.h,lua.h,luaconf.h,lualib.h四個頭文件復制一份拷貝到include目錄,因為后面編譯luabind時需要
? ? ? (如果覺得麻煩,可以直接復制一份/home/lua-5.1.5/src目錄,然后改名為include即可)
? ? 4. 把編譯boost時產生的可執行程序bjam文件復制一份拷貝到luabind根目錄,即拷貝到目錄 /home/luabind-0.9.1
? ? 5. 設置boost和lua的環境變量
? ? ? ? export BOOST_ROOT=/home/boost_1_55_0?
? ? ? ? export LUA_PATH=/home/lua-5.1.5
? ? 6. 開始修改luabind的三個代碼文件,分別是?
? ? ? ? /home/luabind-0.9.1/luabind/wrapper_base.hpp ? ??
? ? ? ? /home/luabind-0.9.1/luabind/detail/call_function.hpp ? ??
? ? ? ? /home/luabind-0.9.1/luabind/detail/call_member.hpp
? ? ? 三個文件都進行下面的修改
? ? ? 去掉?
? ? ? ? ? #elif BOOST_PP_ITERATION_FLAGS() == 1?
? ? ? 更換為?
? ? ? ? ? #else
? ? ? ? ? #if BOOST_PP_ITERATION_FLAGS() == 1
? ? ??然后在源碼底部加一個#endif
? ? 7. 進入luabind根目錄,執行命令 ./bjam --toolset=gcc debug 開始編譯
? ? 8. 稍等幾秒后,即可在目錄 /home/luabind-0.9.1/bin/gcc-4.4.7/debug/下產生編譯出來的luabind動態庫
? ? 9. 注意:
? ? ? ? 上面的gcc-4.4.7為當前系統中安裝的gcc版本,在你那里,名字是你系統中的gcc版本名字
? ? ? ? debug 表編譯的是debug版,當然,如果上面的編譯命令中為?./bjam --toolset=gcc release,則會編譯release版
? ? ? ? 若想編譯luabind的靜態庫,則上面的編譯命令為 ./bjam --toolset=gcc link=static debug 則會
? ? ? ? 在/home/luabind-0.9.1/bin/gcc-4.4.7/debug/link-static/下產生編譯出來的luabind靜態庫
? ? ? ? 以上 這些都是bjam的編譯選項,更多的bjam選項,請參考筆者的另外一篇博客
? ? ? ? 地址為:?http://blog.csdn.net/yzf279533105/article/details/77658367
? ? 10. 筆者這里把剛才演示中編譯出來的庫文件(Debug版,動態庫和靜態庫)上傳了出來,可以直接拿去使用?
? ? ? ? 下載地址為:http://download.csdn.net/download/yzf279533105/10110456
總結
以上是生活随笔為你收集整理的linux centos 编译luabind-0.9.1 动态库 静态库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux-防火墙有关知识积累
- 下一篇: luabind-0.9.1在window