LuaXml库的编译

来源:互联网 发布:电脑语音输入软件 编辑:程序博客网 时间:2024/04/30 12:16

之前项目有用到LuaXml库,用于在nginx-lua中解析xml消息包。后来部署服务器时居然编译不过,具体步骤也忘记了,这里开单张重新梳理下,同时网上关于LuaXml编译的文章也很少,这里也给自己留个底。


LuaXml的编译需要Lua支持,LuaXml目前支持lua5.1和lua5.2。这里的lua库如果从官网上直接下载对应的版本,在编译LuaXml时会出现符号链接出错Bad Value的提示。

建议使用如下命令安装lua。

ubuntu:

apt-get install lua5.1apt-get install liblua5.1-devapt-get install liblua5.1-socket2

centos可以使用yum安装。这样的目的是为了让系统默认寻找最匹配的lua库。


然后下载5.1版本的LuaXml,官网地址为:官网。下载完后,需要修改其中的Makefile文件,将头文件和库文件的目录换成系统中lua头文件和库文件所在的目录。

如果不清楚,可以先查找一下.

查找头文件 find / -name "lua.h" ,显示在/usr/include/lua5.1。查找库文件 find / -name "liblua*.a",显示在/usr/lib/i386-linux-gnu。 如下所示:

<span style="font-size:14px;">CC     = gccINCDIR = -I../lua/srcLIB    = LIBDIR =  -L. -L../lua/srcCFLAGS = -Os -Wall -c #-g</span>

改为:

<span style="font-size:14px;">CC     = gccINCDIR = -I/usr/include/lua5.1LIB    =LIBDIR =  -L. -L/usr/lib/i386-linux-gnuCFLAGS = -Os -Wall -c #-g</span>

然后make。这里可能会提示找不到llua

<span style="font-size:18px;">root@ubuntu:/home/wangc/software/LuaXML_101012# makegcc -Os -Wall -c  -fPIC -I/usr/include/lua5.1 -c LuaXML_lib.cgcc -o LuaXML_lib.so -fPIC -shared LuaXML_lib.o -L. -L/usr/lib/i386-linux-gnu  -llua -ldl /usr/bin/ld: cannot find -lluacollect2: ld returned 1 exit statusmake: *** [LuaXML_lib.so] Error 1</span>

我们需要修改Makefile,将其中的llua替换成llua5.1。重新make,这时应该会生成LuaXML_lib.so文件了。


如何使用呢,这里将LuaXML_lib.so和LuaXml.lua拷贝至工程目录,并将工程目录写入系统环境变量中,后续的使用参考我的另外一篇博客:Nginx+Lua环境中利用LuaXml解析Xml 。

至此,LuaXml库的编译就到此为止了。

0 0