纯源码包安装 lua 的时候遇到的错误和解决办法

http://storysky.blog.51cto.com/628458/345982/


昨天晚上磕磕绊绊的把nginx 装好了(所有需要的包都是源码包),今天开始部署数据库,因为需要lua 语言环境支持,所以需要先安装lua,结果这东西安装也不是那么顺利,

第一步是 make
第二步   make linux
这里出错了,提示如下
luaconf.h:275:31: error: readline/readline.h: No such file or directory
luaconf.h:276:30: error: readline/history.h: No such file or directory
lua.c: In function 'pushline':
lua.c:182: warning: implicit declaration of function 'readline'
lua.c:182: warning: assignment makes pointer from integer without a cast
lua.c: In function 'loadline':
lua.c:210: warning: implicit declaration of function 'add_history'
make[2]: *** [lua.o] Error 1
make[2]: Leaving directory `/data/source/lua-5.1.4/src'
make[1]: *** [linux] Error 2
make[1]: Leaving directory `/data/source/lua-5.1.4/src'
make: *** [linux] Error 2
明显是找不到 readline,不用看肯定是 readline-devel没装,去找谷歌问了一通, 得到的答案都是安装 readline-devel rpm包可是客户不让我们安装rpm包啊,权限都不给怎么装。 下载个 readline源码包吧!装上之后问题来了,这东西没有 configure 晕,怎么去指定include 和 lib呢,从安装目录里面找了半天 只在 Makefile 里面找到了一个INSTALL_TOP 安装路径。我郁闷了,这可怎么办。
  这时候开发部门的头刚好闲着没事,看到我犯愁呢就直接跟我说“我给你搞定~~~”,于是我把安装包发给他去一边自己折腾去了,一会儿就听他从那边抱怨"这tm什么破玩意儿"~~~
  快到下班的时候他得意洋洋的过来找我,跟我说让我打开 src/Makefile 看看
果然有两个变量 CFLAGS=  和 MYLDFLAGS= 说这两个东西就是指定include 和lib的,他不说我还真不知道,他又把指定的方法教给我。我万分感谢,看着他得意的走了于是 按照他的方法把这两个变量修改了一下,如下是修改后的结果
CFLAGS= -O2 -Wall $(MYCFLAGS) -I/usr/local/ufo/lib/readline/include
.....
MYLDFLAGS=-L/usr/local/ufo/lib/readline/lib
修改后保存退出,然后又改了一下  INSTALL_TOP = /usr/local/ufo/lua

再次 make linux   make install,搞定 (*^__^*) 



编译lualua项目,其中用到了lua-5.1版本的源码,编译时提示缺少readline库,找不到readline/readline.h头文件等

发现系统中其实有安装readline库不过没有做链接和头文件目录拷贝,anyway不管这些,就当没有,重新安装readline库

 

1.下载readline-6.2.tar.gz

wget -c ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz 

放到某个目录下,如/usr/local/

并解压出来 tar xzvf readline-6.2.tar.gz

进入源码目录 cd /usr/local/readline-6.2

 

2.配置Makefile文件

执行./configure 生成针对系统环境的编译文件Makefile,里面有编译后.a .so include等所要放置的位置及ln链接等操作

 

3.编译和安装

make && make install

安装完成后能看到静态库 动态库 头文件已经放置到既定位置

/usr/local/lib/libreadline.a

/usr/local/lib/libreadline.so

/usr/local/include/readline/

 

再去编译lualua就能顺利完成了。

另外:lua5.2.X的luaconf.h已经没有include readline.h了,只有比5.2更早版本才有


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值