QT环境下的Lua库编译及运行环境配置

1.下载Lua。目前的最新版本为5.3.4

https://www.lua.org/ftp/lua-5.3.4.tar.gz

2.在QT下编译Lua的库

我用的QT环境是qt-opensource-windows-x86-mingw530-5.8.0。

(1)在QT中建立库文件工程lua。

(2)将lua源代码解压到工程目录下,将除了luac.c、lua.c的所有c文件加进工程。

(3)在luaconf.h开始加上#define LUA_BUILD_AS_DLL

(4)选择Release版本编译即可

3.建立testLua测试工程,类型为“Qt Console Application”。

(1)将编译得到的库文件liblua.a拷贝到工程目录下。在工程文件*.pro中添加

LIBS+=-L../testlua-llua

将liblua.dll拷贝到运行目录下。

(2)将lua.h、lualib.h、luaxlib.h三个文件拷贝到工程目录下,并加入到工程中。也可以在*.pro文件中直接用“-I”指定头文件目录。

(3)在main.cpp中加入以下代码:

extern "C" {

#include "lua.h"

#include "lualib.h"

#include "lauxlib.h"

#include "tolua++.h"

}

(4)在main函数中添加以下代码:

lua_State *lu = luaL_newstate();

luaL_openlibs(lu);

QString str = "print (\"Hello world!\")";  //执行内存脚本

luaL_loadbuffer(lu, str.c_str(), str.length(), "line");

lua_pcall(lu, 0, 0, 0);

lua_close(L);

编译运行后会在终端窗口显示字符串“Hello world!”。

 

注意实现:

1.运行目录默认为build-xxx目录,构建后会自动生成,可在“项目-->Run”中设置。

2.库文件位置需要指定正确,否则会出现“can't find file ...”之类的错误。

3.dll文件需要拷贝到运行目录下,否则会报0xc0000135错误。

4.库文件指定时的名称问题

mingw下QT编译的库文件通常为“libxxx.a”,其中lib和.a是默认的,所以只需指定xxx即可。这真的是个不起眼的大坑!!!:(


其他请参考

https://www.lua.org/download.html

http://www.cnblogs.com/IT-BOY/p/3570764.html


你可能感兴趣的:(qt,lua)