[记录点滴] 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
- 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 数组属性和方法
- 八种方法(实现两个数互换),绝了绝了!
- 当你触摸屏幕时手机都干了什么?你必须知道的Android事件传递
- 栈与队列:来看看栈和队列不为人知的一面
- 栈与队列:我用栈来实现队列怎么样?
- 栈与队列:用队列实现栈还有点别扭
- 短视频源码php,自动查找重复贴图
- 栈与队列:系统中处处都是栈的应用
- 长文慎入!大厂架构演进实战之手写 CAS 单点登录
- 栈与队列:匹配问题都是栈的强项
- SpringBoot源码学习(五)
- SpringBoot源码学习(六)
- SpringBoot源码学习(七)
- LeetCode52|有序数组中的单一元素
- LeetCode53|搜索二维矩阵II
- LeetCode54|二叉树的层次遍历