编译步骤
一. 需先编译好lua,编译好静态库即可,编译lua的具体步骤如下:
1. lua5.1.5 下载地址
注意:貌似使用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的具体步骤请参考
三. 从上面的luabind下载地址下载得到压缩包:luabind-0.9.1.tar.gz
1. 解压,至此笔者解压后的
根目录为:/home/luabind-0.9.1
根目录为:/home/lua-5.1.5 (根据步骤一,已编译出静态库liblua.a)
根目录为:/home/boost_1_55_0(根据步骤二,已产生可执行程序bjam)
lib,然后把步骤一编译出来的 liblua.a复制一份拷贝到该目录下,
后面编译luabind时需链接用
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静态库
10. 笔者这里把刚才演示中编译出来的库文件(Debug版,动态库和静态库)上传了出来,可以直接拿去使用
标签:0.9,5.1,centos,编译,luabind,lua,home From: https://blog.51cto.com/u_15912066/5936258