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

你可能感兴趣的:(luabind)