[记录点滴] luaxml编译过程
时间:2022-07-24
本文章向大家介绍[记录点滴] luaxml编译过程,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
[记录点滴] luaxml编译
记录一次luaxml编译的解决过程 参考 http://blog.csdn.net/dc_show/article/details/38957991
0x01 编译错误
编译错误 1
make
gcc -Os -Wall -c -fPIC -I../lua/src -c LuaXML_lib.c
LuaXML_lib.c:36:17: 致命错误:lua.h:没有那个文件或目录
#include <lua.h>
^
编译中断。
make: *** [LuaXML_lib.o] 错误 1
服务器上lua的状态
[root@iZ255h7jx9sZ luaxml-master]# which lua
/usr/bin/lua
[root@iZ255h7jx9sZ luaxml-master]# lua -v
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
需要修改其中的Makefile文件,将头文件和库文件的目录换成系统中lua头文件和库文件所在的目录。
查找头文件 find / -name "lua.h" ,显示在 /usr/local/openresty/luajit/include/luajit-2.1/lua.h
查找库文件 find / -name "liblua*.a",显示在 /usr/local/openresty/luajit/lib/libluajit-5.1.a
编译错误 2
make,这里可能会提示找不到llua 也需要修改Makefile
[root@iZ255h7jx9sZ luaxml-master]# make
gcc -Os -Wall -c -fPIC -I/usr/local/openresty/luajit/include/luajit-2.1/ -c LuaXML_lib.c
gcc -o LuaXML_lib.so -fPIC -shared LuaXML_lib.o -L. -L../usr/local/openresty/luajit/lib/ -llua -ldl
/usr/bin/ld: cannot find -llua
collect2: 错误:ld 返回 1
make: *** [LuaXML_lib.so] 错误 1
在服务器上继续找,找到了
/usr/lib64/liblua-5.1.so
0x02 最终 Makefile
文件如下
# 2009-03-16 by gf
# generic compiler and linker settings:
CC = gcc
INCDIR = -I/usr/local/openresty/luajit/include/luajit-2.1/
LIB =
LIBDIR = -L. -L/usr/lib64/
CFLAGS = -Os -Wall -c #-g
# generic platform specific rules:
ARCH = $(shell uname -s)
ifeq ($(ARCH),Linux)
CFLAGS += -fPIC
LFLAGS = -fPIC -shared
LIBS = $(LIBDIR) $(LIB) -llua-5.1 -ldl
EXESUFFIX =
SHLIBSUFFIX = .so
else
ifeq ($(ARCH),Darwin) # MacOSX
LFLAGS = -bundle
LIBS = $(LIBDIR) -L/usr/local/lib $(LIB) -llua
EXESUFFIX = .app
SHLIBSUFFIX = .so
else # windows, MinGW
LFLAGS = -shared
LIBS = $(LIBDIR) $(LIB) -llua51 -mconsole -s
EXESUFFIX = .exe
SHLIBSUFFIX = .dll
endif
endif
# project specific targets:
all: LuaXML_lib$(SHLIBSUFFIX)
# project specific link rules:
LuaXML_lib$(SHLIBSUFFIX): LuaXML_lib.o
$(CC) -o $@ $(LFLAGS) $^ $(LIBS)
# project specific dependencies:
LuaXML_lib.o: LuaXML_lib.c
# generic rules and targets:
.c.o:
$(CC) $(CFLAGS) $(INCDIR) -c $<
clean:
rm -f *.o *~ LuaXML_lib.so LuaXML_lib.dll
- MySQL自增列主从不一致的测试(r12笔记第37天)
- 分享Mac/Linux系统Shell终端利器SecureCRT以及注册破解方法
- MySQL中GTID和自增列的数据测试(r12笔记第38天)
- 分享一个入门级可控多线程shell脚本方案
- PhalGo-介绍
- 实测Nginx服务器开启pagespeed加速效果
- MySQL频繁停库的问题分析(r12笔记第33天)
- 解决Nginx Helper插件一键清理缓存功能导致网站打不开问题
- Oracle 12c DBCA浅析(r12笔记第48天)
- MySQL中的derived table(r12笔记第47天)
- Oracle数据库端口突然无法访问的分析(r12笔记第46天)
- MySQL中的反连接(r12笔记第45天)
- Nginx配置多站点下的Proxy_cache或Fastcgi_cache缓存加速
- MySQL主从不一致的细小问题分析(r12笔记第62天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- java8新特性总结备忘
- 商业数据分析从入门到入职(6)Python程序结构和函数
- 数据科学家极力推荐核心计算工具-Numpy的前世今生(下)
- Android 重构 | 持续优化统一管理 Gradle
- 快速学习-XXL-JOB调度中心/执行器 RESTful API
- 快速学习-XXL-JOB快速入门
- binlog2sql,你该知道的数据恢复工具
- java反射总结
- 玩转dnmp之port篇
- 玩转dnmp之自定义容器
- python那些实用且不为人知的技巧
- 实现接口的契约测试
- java泛型总结
- 彻底搞懂 etcd 系列文章(九):etcd compact 和 watch API
- lru算法和redis的lru