使用Qt编译Lua

本文介绍使用Qt5.14.2在Win10上编译Lua源码,并将Lua源码编译成三个不同的目标文件,它们分别是:
0:LuaLib(Lua动态库)
1:LuaCompile(Lua编译器)
2:LuaExplanation(Lua解释器)

0x00 下载Lua源码

  • 下载地址
    http://www.lua.org/download.html

在这里插入图片描述

0x01 使用Qt创建QtLua工程

在这里插入图片描述

  1. 将lua-5.4.4源码(即整个src目录)复制到QtLua工程下,并删除该工程下的main.cpp文件

  2. 修改QtLua.pro文件

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

DESTDIR = bin/LuaLib
CONFIG -= debug_and_release
MOC_DIR = tmp/moc
RCC_DIR = tmp/rcc
UI_DIR = tmp/ui
OBJECTS_DIR = tmp/obj

DEFINES += LUA_BUILD_AS_DLL

# 0LuaLib(Lua动态库)    1LuaCompile(Lua编译器)   2LuaExplanation(Lua解释器)

# 编译选项
makeOption = 1
message($$makeOption)

if(equals(makeOption, 0)){
    TARGET = lua
    # 编译动态库
    TEMPLATE = lib
    DEFINES += QTLUA_LIBRARY

    DESTDIR = bin/LuaLib
    message("0:LuaLib")
}
if(equals(makeOption, 1)){
    TARGET = luac
    DESTDIR = bin/LuaCompile

    LIBS += -L$$PWD/bin/LuaLib
    LIBS += -llua

    SOURCES += src/luac.c
    message("1:LuaCompile")
}
if(equals(makeOption, 2)){
    TARGET = lua
    DESTDIR = bin/LuaExplanation

    SOURCES += src/lua.c
    message("2:LuaExplanation")
}

if(equals(makeOption, 0) || equals(makeOption, 1)){
SOURCES += \
    src/lapi.c \
    src/lauxlib.c \
    src/lbaselib.c \
    src/lcode.c \
    src/lcorolib.c \
    src/lctype.c \
    src/ldblib.c \
    src/ldebug.c \
    src/ldo.c \
    src/ldump.c \
    src/lfunc.c \
    src/lgc.c \
    src/linit.c \
    src/liolib.c \
    src/llex.c \
    src/lmathlib.c \
    src/lmem.c \
    src/loadlib.c \
    src/lobject.c \
    src/lopcodes.c \
    src/loslib.c \
    src/lparser.c \
    src/lstate.c \
    src/lstring.c \
    src/lstrlib.c \
    src/ltable.c \
    src/ltablib.c \
    src/ltm.c \
    src/lundump.c \
    src/lutf8lib.c \
    src/lvm.c \
    src/lzio.c
}

HEADERS += \
    src/lapi.h \
    src/lauxlib.h \
    src/lcode.h \
    src/lctype.h \
    src/ldebug.h \
    src/ldo.h \
    src/lfunc.h \
    src/lgc.h \
    src/ljumptab.h \
    src/llex.h \
    src/llimits.h \
    src/lmem.h \
    src/lobject.h \
    src/lopcodes.h \
    src/lopnames.h \
    src/lparser.h \
    src/lprefix.h \
    src/lstate.h \
    src/lstring.h \
    src/ltable.h \
    src/ltm.h \
    src/lua.h \
    src/lua.hpp \
    src/luaconf.h \
    src/lualib.h \
    src/lundump.h \
    src/lvm.h \
    src/lzio.h
  1. 由于QtLua.pro中设置了3个编译选项,可以将Lua源码编译成3个不同的目标文件,详细设置请阅读QtLua.pro文件。

在这里插入图片描述

在这里插入图片描述

0x02 效果演示

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓琴儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值