opentesty--luasocket 安装
转载请注明原文地址:http://www.cnblogs.com/dongxiao-yang/p/4878323.html
luasocket安装过程中遇到不少坑,之前采用的是从公司以前服务器的里面找一个其他同学下好的rpm安装包直接安装,安装的路径以及产生的库文件在什么位置都不知道怎么控制,今天抽时间一通google,终于跑通了源码安装的过程。
官方下载地址:http://files.luaforge.net/releases/luasocket/luasocket/luasocket-2.0.2
tar -zxvf luasocket-2.0.2.tar.gz
cd luasocket-2.0.2
修改配置文件config
由于是在安装openresty后再安装luasocket,修改配置文件为,这样将制定luasocket生成的库文件放到openresty默认会寻找的路径下
INSTALL_TOP_SHARE=/opt/openresty/luajit/share/lua/5.1
INSTALL_TOP_LIB=/opt/openresty/luajit/lib/lua/5.1
参考http://blog.csdn.net/wzzfeitian/article/details/8866390教程介绍
make
这种情况下会报错
cd src; make all
make[1]: Entering directory `/opt/luasocket-2.0.2/src'
gcc -I/usr/share/lua/5.1 -DLUASOCKET_DEBUG -pedantic -Wall -O2 -fpic -c -o luasocket.o luasocket.c
luasocket.c:20:17: error: lua.h: No such file or directory
luasocket.c:21:21: error: lauxlib.h: No such file or directory
luasocket.c:24:24: error: compat-5.1.h: No such file or directory
In file included from luasocket.c:30:
luasocket.h:30: error: expected ')' before '*' token
In file included from luasocket.c:31:
auxiliar.h:37: error: expected ')' before '*' token
auxiliar.h:38: error: expected ')' before '*' token
auxiliar.h:39: error: expected ')' before '*' token
auxiliar.h:40: error: expected ')' before '*' token
auxiliar.h:41: error: expected ')' before '*' token
auxiliar.h:42: error: expected ')' before '*' token
auxiliar.h:43: error: expected ')' before '*' token
auxiliar.h:44: error: expected ')' before '*' token
auxiliar.h:45: error: expected ')' before '*' token
auxiliar.h:46: error: expected ')' before '*' token
In file included from luasocket.c:32:
except.h:33: error: expected ')' before '*' token
In file included from luasocket.c:33:
timeout.h:19: error: expected ')' before '*' token
timeout.h:26: error: expected ')' before '*' token
In file included from luasocket.c:34:
buffer.h:39: error: expected ')' before '*' token
buffer.h:41: error: expected ')' before '*' token
buffer.h:42: error: expected ')' before '*' token
buffer.h:43: error: expected ')' before '*' token
buffer.h:44: error: expected ')' before '*' token
In file included from luasocket.c:35:
inet.h:27: error: expected ')' before '*' token
inet.h:35: error: expected ')' before '*' token
inet.h:36: error: expected ')' before '*' token
In file included from luasocket.c:36:
tcp.h:34: error: expected ')' before '*' token
In file included from luasocket.c:37:
udp.h:31: error: expected ')' before '*' token
In file included from luasocket.c:38:
select.h:15: error: expected ')' before '*' token
luasocket.c:43: error: expected ')' before '*' token
luasocket.c:44: error: expected ')' before '*' token
luasocket.c:45: error: expected ')' before '*' token
luasocket.c:50: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'mod'
luasocket.c:60: warning: ISO C does not allow extra ';' outside of a function
luasocket.c:62: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'func'
luasocket.c:66: warning: ISO C does not allow extra ';' outside of a function
luasocket.c:71: error: expected ')' before '*' token
luasocket.c:80: error: expected ')' before '*' token
luasocket.c:89: error: expected ')' before '*' token
luasocket.c:113: error: expected ')' before '*' token
make[1]: *** [luasocket.o] Error 1
make[1]: Leaving directory `/opt/luasocket-2.0.2/src'
make: *** [all] Error 2
这个问题之前查了几次没有结果,看错误输出也一直以为是下的源码包有问题,下了好几个版本都不行,后来偶然看到了http://stackoverflow.com/questions/20490854/luasocket-c2017-error-lua-h-no-such-file-or-directory
有人遇到了同样的问题,生硬照搬答案里make LUAINC=-I/usr/include/lua5.1/的方法也没有解决,反而是看到问题的comment小字有人回复了一句话搞明白了问题的真正原因:
lua.h is the main header file for the Lua C source code. Either you don't have the lua source installed, or you haven't told the compiler where to find it. – Roddy Dec 10 '13 at 9:46
所以说其实是gcc编译命令找不到本机lua的源码到底在什么地方,自然无法编译。正好错误里提示lua.h这个文件找不到,find一下其实就在openresty的build/lua-5.1.5/src下。
修改config文件
LUAINC=-I/opt/ngx_openresty-1.9.3.1/build/lua-5.1.5/src
重新运行make&&make install 成功
再去检查下
INSTALL_TOP_SHARE=/opt/openresty/luajit/share/lua/5.1
INSTALL_TOP_LIB=/opt/openresty/luajit/lib/lua/5.1
这两个路径下socket库文件都已经存在了。
其实之前看http://www.linuxidc.com/Linux/2013-12/93516.htm的过程也提到了要修改LUAINC属性,只不过当时完全不知道这个是干嘛的就滑过去了,其实还是lua生的不行造成的~~~~~
opentesty--luasocket 安装的更多相关文章
- luasocket 安装记录 (FS1.4)
说明:FS 1.4 使用的lua 5.2 ,需要使用luasocket 3.0 以上. 本文以FS 1.4 && luasocket 3.0 为基础,记录安装使用过程. 一.下载 &a ...
- luasocket 安装记录 (FS1.6)
说明: 想通过Lua 脚本实现 http.默认 FS 的 mod_lua 中没有对socket 的支持,如下的操作为lua 添加 socket的支持. 一.下载 luasocket 包: # wget ...
- openresty nginx 安装过程记录
转载请注明原始地址 http://www.cnblogs.com/dongxiao-yang/p/4877799.html 一 :系统版本 1 cat /etc/issue: CentOS relea ...
- lua 5.3.5 安装/初体验
安装 官网http://www.lua.org/start.html 参考 https://blog.csdn.net/qq_23954569/article/details/70879672 cd ...
- luarocks 包管理工具
安装方式:wget http://luarocks.org/releases/luarocks-2.2.2.tar.gz tar zxvf luarocks-2.2.2.tar.gz cd luaro ...
- lua第三方库
一.Lua 包管理工具 1.LuaRocks luarocks 是Lua常用的包管理工具(还有一个是LuaDist),其安装方式请参考官网:https://luarocks.org/#quick-st ...
- lua redis接口 (在ubuntu16.04 环境下配置lua-redis开发环境)
目前成功的lua版本是5.1, 根据网络上的资料显示 lua5.1能够支持 lua-socket 安装lua及相关软件: #安装lua5. #安装lua-socketxiangg sudo apt i ...
- 安装 LuaSocket
如果你安装有 Lua 模块的安装和部署工具 -- LuaRocks,那么一条指令就能安装部署好 LuaSocket: luarocks install luasocket
- luasocket编译安装遇到的坑
由于需要获得本机的IP地址,所以需要 : local socket = require('socket') local server_hostname = socket.dns.gethostname ...
随机推荐
- 分享整理的sql脚本
1. 表空间使用率 SQL> select a.tablespace_name, 2 round(a.total_size) "total_size M" ...
- iOS菜鸟之FMDB的二次封装简单易用
闲来无事写点东西,希望大家多多指正! 大家先去git下载FMDB,然后将其中source文件夹中的fmdb文件夹拖入自己的项目中.最后就可以引用下面的代码对fmdb进行一次简单的封装. 这样可以更直观 ...
- npm不能安装任何包,报错:npm WARN onload-script failed to require onload script npm-autoinit/autoinit及解决方法
想要利用Hexo搭建一个博客,但是安装时npm一直报错,不仅仅是Hexo包,连别的其他包也不行,会提示下面的一堆错误 npm WARN onload-script failed to require ...
- 【ZOJ2112】【整体二分+树状数组】带修改区间第k大
The Company Dynamic Rankings has developed a new kind of computer that is no longer satisfied with t ...
- magento错误 Service Temporarily Unavailable magento
前台访问出现错误 Service Temporarily Unavailable magento 解决方法 Service TemporarilyUnavailable字面意思是此服务暂时无法使用,如 ...
- php数组基础
一.php数组的声明 1.数组中可以有任意类型的数据 2.长度可以变长 3.数组的分类: a.索引数组:数组是以从0开始的帧数作为索引值 ...
- int*-------int
a=(int)((int*)0 + 4)求a是多少 大家看图应该明白了 十六进制0x00000010转换为十进制就是16
- Cocos2d-x中Vector使用
1.创建Vector对象 Vector().默认的构造函数. Vector(ssize_t capacity).创建Vector对象,并设置容量. Vector(const Vector<T&g ...
- UFLDL实验报告1: Softmax Regression
PS:这些是今年4月份,跟斯坦福UFLDL教程时的实验报告,当时就应该好好整理的…留到现在好凌乱了 Softmax Regression实验报告 1.Softmax Regression实验描述 So ...
- 转:php使用websocket示例详解
原文来自于:http://www.jb51.net/article/48019.htm 这篇文章主要介绍了php使用websocket示例,需要的朋友可以参考下 下面我画了一个图演示 client ...