文档章节

Linux CentOS 编译LUA。。搞半天终于对了= =

徐学良
 徐学良
发布于 2015/12/25 09:52
字数 667
阅读 1028
收藏 0

安装 wget http://www.lua.org/ftp/lua-5.2.1.tar.gz
tar -zvxf lua-5.2.1.tar.gz

make linux
错误:gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lua.o lua.clua.c:67:31: error: readline/readline.h: No such file or directorylua.c:68:30: error: readline/history.h: No such file or directorylua.c: In function ‘pushline’:lua.c:271: warning: implicit declaration of function ‘readline’lua.c:271: warning: assignment makes pointer from integer without a castlua.c: In function ‘loadline’:lua.c:301: warning: implicit declaration of function ‘add_history’make[2]: *** [lua.o] Error 1make[2]: Leaving directory `/root/lua-5.2.0/src'make[1]: *** [linux] Error 2make[1]: Leaving directory `/root/lua-5.2.0/src'make: *** [linux] Error 2

解决:yum install -y readline-devel ncurses-devel

#include<stdio.h>
#include"lua.h"
#include"lauxlib.h"
#include"lualib.h"
#include "luaconf.h"
int main(){ lua_State *L; L = luaL_newstate(); luaL_openlibs(L); luaL_dofile(L,"test.lua"); lua_close(L);}

运行: gcc -o test tes.c -I/usr/local/lua/include/ -L/usr/local/lua/lib/ /usr/local/lua/lib/liblua.a -llua -lm -ldl 

错误1:没有引用liblua.a
/tmp/cckH9huG.o: In function `main':tes.c:(.text+0x12): undefined reference to `luaL_newstate'tes.c:(.text+0x20): undefined reference to `luaL_openlibs'tes.c:(.text+0x33): undefined reference to `luaL_loadfile'tes.c:(.text+0x5a): undefined reference to `lua_pcall'tes.c:(.text+0x65): undefined reference to `lua_close'collect2: ld returned 1 exit status

错误2:没有引用数学库 -llua -lm
/usr/local/lua/lib/liblua.a(lvm.o): In function `Arith':lvm.c:(.text+0xbdb): undefined reference to `pow'/usr/local/lua/lib/liblua.a(lvm.o): In function `luaV_execute':lvm.c:(.text+0x20b7): undefined reference to `pow'/usr/local/lua/lib/liblua.a(lcode.o): In function `codearith':lcode.c:(.text+0x11ec): undefined reference to `pow'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_tan':lmathlib.c:(.text+0x1ee): undefined reference to `tan'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_tanh':lmathlib.c:(.text+0x22e): undefined reference to `tanh'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_sqrt':lmathlib.c:(.text+0x27d): undefined reference to `sqrt'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_sin':lmathlib.c:(.text+0x2be): undefined reference to `sin'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_sinh':lmathlib.c:(.text+0x2fe): undefined reference to `sinh'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_pow':lmathlib.c:(.text+0x488): undefined reference to `pow'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_log':lmathlib.c:(.text+0x52e): undefined reference to `log'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_log10':lmathlib.c:(.text+0x56e): undefined reference to `log10'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_fmod':lmathlib.c:(.text+0x678): undefined reference to `fmod'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_exp':lmathlib.c:(.text+0x6be): undefined reference to `exp'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_cos':lmathlib.c:(.text+0x6fe): undefined reference to `cos'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_cosh':lmathlib.c:(.text+0x73e): undefined reference to `cosh'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_atan':lmathlib.c:(.text+0x77e): undefined reference to `atan'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_atan2':lmathlib.c:(.text+0x7d8): undefined reference to `atan2'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_asin':lmathlib.c:(.text+0x81e): undefined reference to `asin'/usr/local/lua/lib/liblua.a(lmathlib.o): In function `math_acos':lmathlib.c:(.text+0x85e): undefined reference to `acos'/usr/local/lua/lib/liblua.a(loadlib.o): In function `ll_loadfunc':loadlib.c:(.text+0x947): undefined reference to `dlsym'loadlib.c:(.text+0x954): undefined reference to `dlerror'loadlib.c:(.text+0xa2c): undefined reference to `dlopen'loadlib.c:(.text+0xa41): undefined reference to `dlerror'/usr/local/lua/lib/liblua.a(loadlib.o): In function `gctm':loadlib.c:(.text+0x104e): undefined reference to `dlclose'collect2: ld returned 1 exit status

错误3:没有用-ldl 没找着这个是干什么用的,看起来像device

/usr/local/lua/lib/liblua.a(loadlib.o): In function `ll_loadfunc':loadlib.c:(.text+0x947): undefined reference to `dlsym'loadlib.c:(.text+0x954): undefined reference to `dlerror'loadlib.c:(.text+0xa2c): undefined reference to `dlopen'loadlib.c:(.text+0xa41): undefined reference to `dlerror'/usr/local/lua/lib/liblua.a(loadlib.o): In function `gctm':loadlib.c:(.text+0x104e): undefined reference to `dlclose'collect2: ld returned 1 exit status

本文转载自:http://tieba.baidu.com/p/2188398593

徐学良
粉丝 24
博文 213
码字总数 13841
作品 0
浦东
程序员
私信 提问
LTUI, 一个基于 lua 的跨平台字符终端 UI 界面库

LTUI, 一个基于 lua 的跨平台字符终端 UI 界面库 waruqi 27分钟前暂无评论 阅读 15 次 简介 LTUI 是一个基于 lua 的跨平台字符终端 UI 界面库。 项目源码:Github 此框架源于xmake中图形化菜单...

waruqi
2018/12/03
0
0
生产环境上nginx 不覆盖添加lua模块

需求如下: 需要在nginx配置文件中判断请求中是否带某参数变量,nginx配置本身没有此判断功能。 网上查找资料,可以在nginx中添加lua模块,使用lua的脚本去判断。比较靠谱的文章:CentOS系统...

-悟空-
2015/06/11
2K
2
跟 UMU 一起玩 OpenWRT(高级篇1):编译不死 U-Boot

UMU 2010 年初就玩 OpenWRT/DD-WRT 了,蛋似编译东西还是初学者,本文纯属蛋疼的过程,欢迎批评教育,谢谢…… 首先到 https://github.com/pepe2k/u-bootmod 看明白作者的说明。这里简单说一...

UMU
2014/05/21
8.4K
1
Nginx实现url请求不区分大小写

如果你将跑在Windows下的项目(如:php)迁移到Linux下,由于Windows操作系统中,文件名是不区分大小写的;而Linux系统是大小写敏感,会导致有些网页出现404情况。 解决方法有大概4种: 1、 ...

mickelfeng
2014/12/06
580
0
Linux/CentOS/Fedora图形安装界面,笔记本很暗,黑屏解决

今天讨厌WINDOWS了(很早就开始了,毕竟WINDOWS是主流,今天就不同了),为了开源不搞LINUX是不行,不过我只是简单开发C而已,虚拟机安装系统性能分去了一半,慢死了。还是双系统策略吧。 在D...

蓝叶菱
2012/07/22
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

php7-internal 7 zval的操作

## 7.7 zval的操作 扩展中经常会用到各种类型的zval,PHP提供了很多宏用于不同类型zval的操作,尽管我们也可以自己操作zval,但这并不是一个好习惯,因为zval有很多其它用途的标识,如果自己...

冻结not
昨天
4
0
溢出\越界\泄漏

溢出:栈溢出是指函数中的局部变量造成的溢出,递归次数太多也会栈溢出 一是分配的大小超过栈的最大值,char a[99999999999999999]; 二是分配的大小没有超过最大值,但是接收的buff比新buff小...

SibylY
昨天
3
0
线性表-链式(c/c++实现)

在写数据的结构就是自己排兵布阵,根据客户的需求可增删功能,顺序与链式编程思想是一样的,两个比较只需要改变实现功能这一块。 线性表(链式)实现的三个步骤: 定义所需的功能(LinkList....

白客C
昨天
4
0
导览Linux系统文件系统类型

虽然对于普通用户来说可能并不明显,但在过去十年左右的时间里,Linux 文件系统已经发生了显著的变化,这使它们能够更好对抗损坏和性能问题。 如今大多数 Linux 系统使用名为 ext4 的文件系统...

老孟的Linux私房菜
昨天
4
0
Eureka重要对象简介

在进行分析EurekaClient和EurekaServer之间通信的源码之前,我们首先需要熟悉一下几个实体类 InstanceInfo 这个类代表着EurekaClient实例,客户端向服务端请求注册时就会携带着这个实例,这个...

Java学习录
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部