Windows下的lua-5.3.4安装过程

Windows下的lua-5.3.4安装过程

参考 https://www.zhihu.com/column/c_1167186465141870592

 

Mingw平台下的编译过程:
$ make echo
$ make mingw
$ make local

 

复制代码
$ make echo
PLAT= none
CC= gcc -std=gnu99
CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_2  
LDFLAGS= 
LIBS= -lm  
AR= ar rcu
RANLIB= ranlib
RM= rm -f
PLAT= none
V= 5.3
R= 5.3.4
TO_BIN= lua luac
TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp
TO_LIB= liblua.a
TO_MAN= lua.1 luac.1
INSTALL_TOP= /usr/local
INSTALL_BIN= /usr/local/bin
INSTALL_INC= /usr/local/include
INSTALL_LIB= /usr/local/lib
INSTALL_MAN= /usr/local/man/man1
INSTALL_LMOD= /usr/local/share/lua/5.3
INSTALL_CMOD= /usr/local/lib/lua/5.3
INSTALL_EXEC= install -p -m 0755
INSTALL_DATA= install -p -m 0644

$ make mingw
cd src && make mingw
make[1]: Entering directory `/d/lua-5.3.4/src'
make "LUA_A=lua53.dll" "LUA_T=lua.exe" \
    "AR=gcc -std=gnu99 -shared -o" "RANLIB=strip --strip-unneeded" \
    "SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe
make[2]: Entering directory `/d/lua-5.3.4/src'
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lua.o lua.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lapi.o lapi.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lcode.o lcode.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lctype.o lctype.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o ldebug.o ldebug.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o ldo.o ldo.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o ldump.o ldump.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lfunc.o lfunc.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lgc.o lgc.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o llex.o llex.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lmem.o lmem.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lobject.o lobject.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lopcodes.o lopcodes.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lparser.o lparser.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lstate.o lstate.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lstring.o lstring.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o ltable.o ltable.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o ltm.o ltm.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lundump.o lundump.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lvm.o lvm.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lzio.o lzio.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lauxlib.o lauxlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lbaselib.o lbaselib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lbitlib.o lbitlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lcorolib.o lcorolib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o ldblib.o ldblib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o liolib.o liolib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lmathlib.o lmathlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o loslib.o loslib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lstrlib.o lstrlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o ltablib.o ltablib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o lutf8lib.o lutf8lib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o loadlib.o loadlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL    -c -o linit.o linit.c
gcc -std=gnu99 -shared -o lua53.dll lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o lmathlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o loadlib.o linit.o 
strip --strip-unneeded lua53.dll
gcc -std=gnu99 -o lua.exe -s  lua.o lua53.dll -lm  
make[2]: Leaving directory `/d/lua-5.3.4/src'
make "LUAC_T=luac.exe" luac.exe
make[2]: Entering directory `/d/lua-5.3.4/src'
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2     -c -o luac.o luac.c
ar rcu liblua.a lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o lmathlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o loadlib.o linit.o 
ranlib liblua.a
gcc -std=gnu99 -o luac.exe   luac.o liblua.a -lm  
make[2]: Leaving directory `/d/lua-5.3.4/src'
make[1]: Leaving directory `/d/lua-5.3.4/src'


$ make local
make install INSTALL_TOP=../install
make[1]: Entering directory `/d/lua-5.3.4'
cd src && mkdir -p ../install/bin ../install/include ../install/lib ../install/man/man1 ../install/share/lua/5.3 ../install/lib/lua/5.3
cd src && install -p -m 0755 lua luac ../install/bin
cd src && install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h lua.hpp ../install/include
cd src && install -p -m 0644 liblua.a ../install/lib
cd doc && install -p -m 0644 lua.1 luac.1 ../install/man/man1
make[1]: Leaving directory `/d/lua-5.3.4'
复制代码

 

安装目录结构

复制代码
D:\LUA-5.3.4\INSTALL
├─bin
│      lua.exe
│      luac.exe
│
├─include
│      lauxlib.h
│      lua.h
│      lua.hpp
│      luaconf.h
│      lualib.h
│
├─lib
│  │  liblua.a
│  │
│  └─lua
│      └─5.3
├─man
│  └─man1
│          lua.1
│          luac.1
│
└─share
    └─lua
复制代码

 

 

MSVC 命令行编译脚本:

 

复制代码
md bin
md include
md lib

cd src
cl /c /nologo /W3 /O2 /Ob1 /Oi /Gs /MD *.c
del lua.obj luac.obj
link /LIB /out:lua53.lib /verbose:lib *.obj
copy lua53.lib ..\lib\lua53.lib
del *.obj *.lib *.dll *.exp
cd ..\
echo Compile lua53.lib successfully...

cd src
cl /c /nologo /W3 /O2 /Ob1 /Oi /Gs /MD /DLUA_BUILD_AS_DLL /D_CRT_SECURE_NO_DEPRECATE *.c
del lua.obj luac.obj
link /DLL /out:lua53.dll /verbose:lib *.obj
copy lua53.dll ..\lib\lua53.dll
del *.obj *.lib *.dll *.exp
cd ..\
echo Compile lua53.dll successfully...

cd src
cl /c /nologo /W3 /O2 /Ob1 /Oi /Gs /MD *.c
del luac.obj
link /out:lua53.exe /verbose:lib *.obj
copy lua53.exe ..\bin\lua53.exe
del *.obj *.lib *.dll *.exp *.exe
cd ..\
echo Compile lua53.exe successfully...

cd src
cl /c /nologo /W3 /O2 /Ob1 /Oi /Gs /MD *.c
del lua.obj
link /out:luac53.exe /verbose:lib *.obj
copy luac53.exe ..\bin\luac53.exe
del *.obj *.lib *.dll *.exp *.exe
cd ..\
echo Compile luac53.exe successfully...

cd src
copy lauxlib.h ..\include\lauxlib.h
copy lua.h ..\include\lua.h
copy lua.hpp ..\include\lua.hpp
copy luaconf.h ..\include\luaconf.h
copy lualib.h ..\include\lualib.h
cd ..\
echo Copy lua include file successfully...
复制代码

 

 

打开 【VS2012 开发人员命令提示】

 

 

 

 手动编译过程

 

复制代码
D:\lua-5.3.4>md bin 

D:\lua-5.3.4>md include 

D:\lua-5.3.4>md lib 

D:\lua-5.3.4>cd src 

D:\lua-5.3.4\src>cl /c /nologo /W3 /O2 /Ob1 /Oi /Gs /MD *.c 
lapi.c
lauxlib.c
lbaselib.c
lbitlib.c
lcode.c
lcorolib.c
lctype.c
ldblib.c
ldebug.c
ldo.c
ldump.c
lfunc.c
lgc.c
linit.c
liolib.c
llex.c
lmathlib.c
lmem.c
loadlib.c
lobject.c
正在生成代码...
正在编译...
lopcodes.c
loslib.c
lparser.c
lstate.c
lstring.c
lstrlib.c
ltable.c
ltablib.c
ltm.c
lua.c
luac.c
lundump.c
lutf8lib.c
lvm.c
lzio.c
正在生成代码...

D:\lua-5.3.4\src>del lua.obj luac.obj 

D:\lua-5.3.4\src>link /LIB /out:lua53.lib /verbose:lib *.obj 
Microsoft (R) Library Manager Version 11.00.61030.0
Copyright (C) Microsoft Corporation.  All rights reserved.


D:\lua-5.3.4\src>copy lua53.lib ..\lib\lua53.lib 
已复制         1 个文件。

D:\lua-5.3.4\src>del *.obj *.lib *.dll *.exp 

D:\lua-5.3.4\src>cd ..\ 

D:\lua-5.3.4>echo Compile lua53.lib successfully... 
Compile lua53.lib successfully...

D:\lua-5.3.4>cd src 

D:\lua-5.3.4\src>cl /c /nologo /W3 /O2 /Ob1 /Oi /Gs /MD /DLUA_BUILD_AS_DLL /D_CRT_SECURE_NO_DEPRECATE *.c 
lapi.c
lauxlib.c
lbaselib.c
lbitlib.c
lcode.c
lcorolib.c
lctype.c
ldblib.c
ldebug.c
ldo.c
ldump.c
lfunc.c
lgc.c
linit.c
liolib.c
llex.c
lmathlib.c
lmem.c
loadlib.c
lobject.c
正在生成代码...
正在编译...
lopcodes.c
loslib.c
lparser.c
lstate.c
lstring.c
lstrlib.c
ltable.c
ltablib.c
ltm.c
lua.c
luac.c
lundump.c
lutf8lib.c
lvm.c
lzio.c
正在生成代码...

D:\lua-5.3.4\src>del lua.obj luac.obj 

D:\lua-5.3.4\src>link /DLL /out:lua53.dll /verbose:lib *.obj 
Microsoft (R) Incremental Linker Version 11.00.61030.0
Copyright (C) Microsoft Corporation.  All rights reserved.


正在搜索库
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\MSVCRT.lib:
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\OLDNAMES.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\uuid.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\kernel32.lib:
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\MSVCRT.lib:
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\OLDNAMES.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\uuid.lib:

已完成库搜索
   正在创建库 lua53.lib 和对象 lua53.exp

正在搜索库
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\MSVCRT.lib:
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\OLDNAMES.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\uuid.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\kernel32.lib:

已完成库搜索

正在搜索库
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\MSVCRT.lib:
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\OLDNAMES.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\uuid.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\kernel32.lib:

已完成库搜索

D:\lua-5.3.4\src>copy lua53.dll ..\lib\lua53.dll 
已复制         1 个文件。

D:\lua-5.3.4\src>del *.obj *.lib *.dll *.exp 

D:\lua-5.3.4\src>cd ..\ 

D:\lua-5.3.4>echo Compile lua53.dll successfully... 
Compile lua53.dll successfully...

D:\lua-5.3.4>cd src 

D:\lua-5.3.4\src>cl /c /nologo /W3 /O2 /Ob1 /Oi /Gs /MD *.c 
lapi.c
lauxlib.c
lbaselib.c
lbitlib.c
lcode.c
lcorolib.c
lctype.c
ldblib.c
ldebug.c
ldo.c
ldump.c
lfunc.c
lgc.c
linit.c
liolib.c
llex.c
lmathlib.c
lmem.c
loadlib.c
lobject.c
正在生成代码...
正在编译...
lopcodes.c
loslib.c
lparser.c
lstate.c
lstring.c
lstrlib.c
ltable.c
ltablib.c
ltm.c
lua.c
luac.c
lundump.c
lutf8lib.c
lvm.c
lzio.c
正在生成代码...

D:\lua-5.3.4\src>del luac.obj 

D:\lua-5.3.4\src>link /out:lua53.exe /verbose:lib *.obj 
Microsoft (R) Incremental Linker Version 11.00.61030.0
Copyright (C) Microsoft Corporation.  All rights reserved.


正在搜索库
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\MSVCRT.lib:
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\OLDNAMES.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\uuid.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\kernel32.lib:
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\MSVCRT.lib:
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\OLDNAMES.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\uuid.lib:

已完成库搜索

正在搜索库
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\MSVCRT.lib:
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\OLDNAMES.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\uuid.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\kernel32.lib:

已完成库搜索

D:\lua-5.3.4\src>copy lua53.exe ..\bin\lua53.exe 
已复制         1 个文件。

D:\lua-5.3.4\src>del *.obj *.lib *.dll *.exp *.exe 

D:\lua-5.3.4\src>cd ..\ 

D:\lua-5.3.4>echo Compile lua53.exe successfully... 
Compile lua53.exe successfully...

D:\lua-5.3.4>cd src 

D:\lua-5.3.4\src>cl /c /nologo /W3 /O2 /Ob1 /Oi /Gs /MD *.c 
lapi.c
lauxlib.c
lbaselib.c
lbitlib.c
lcode.c
lcorolib.c
lctype.c
ldblib.c
ldebug.c
ldo.c
ldump.c
lfunc.c
lgc.c
linit.c
liolib.c
llex.c
lmathlib.c
lmem.c
loadlib.c
lobject.c
正在生成代码...
正在编译...
lopcodes.c
loslib.c
lparser.c
lstate.c
lstring.c
lstrlib.c
ltable.c
ltablib.c
ltm.c
lua.c
luac.c
lundump.c
lutf8lib.c
lvm.c
lzio.c
正在生成代码...

D:\lua-5.3.4\src>del lua.obj 

D:\lua-5.3.4\src>link /out:luac53.exe /verbose:lib *.obj 
Microsoft (R) Incremental Linker Version 11.00.61030.0
Copyright (C) Microsoft Corporation.  All rights reserved.


正在搜索库
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\MSVCRT.lib:
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\OLDNAMES.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\uuid.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\kernel32.lib:
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\MSVCRT.lib:
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\OLDNAMES.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\uuid.lib:

已完成库搜索

正在搜索库
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\MSVCRT.lib:
    正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\OLDNAMES.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\uuid.lib:
    正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\kernel32.lib:

已完成库搜索

D:\lua-5.3.4\src>copy luac53.exe ..\bin\luac53.exe 
已复制         1 个文件。

D:\lua-5.3.4\src>del *.obj *.lib *.dll *.exp *.exe 

D:\lua-5.3.4\src>cd ..\ 

D:\lua-5.3.4>echo Compile luac53.exe successfully... 
Compile luac53.exe successfully...

D:\lua-5.3.4>cd src 

D:\lua-5.3.4\src>copy lauxlib.h ..\include\lauxlib.h 
已复制         1 个文件。

D:\lua-5.3.4\src>copy lua.h ..\include\lua.h 
已复制         1 个文件。

D:\lua-5.3.4\src>copy lua.hpp ..\include\lua.hpp 
已复制         1 个文件。

D:\lua-5.3.4\src>copy luaconf.h ..\include\luaconf.h 
已复制         1 个文件。

D:\lua-5.3.4\src>copy lualib.h ..\include\lualib.h 
已复制         1 个文件。

D:\lua-5.3.4\src>cd ..\ 

D:\lua-5.3.4>echo Copy lua include file successfully... 
Copy lua include file successfully...
复制代码

 

生成文件列表

 

VS中BanbeLua配置

 

 

Lua简单的测试代码:

复制代码
function babe_tostring(...)
    local num = select("#", ...);
    local args = { ...};
    local outs = { };
    for i = 1, num do
        if i > 1 then
            outs[#outs + 1] = "\t";
        end
        outs[#outs + 1] = tostring(args[i]);
    end
    return table.concat(outs);
end  
  
local babe_print = print;
local babe_output = function(...)
    babe_print(...);

    if decoda_output ~= nil then
        local str = babe_tostring(...);
        decoda_output(str);
    end
end

babe_print("hello");
babe_output("Hello world, from ",_VERSION,"!\n");

os.execute("pause");
复制代码

 

 调试运行效果:

 

 MSVS的工程属性配置

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

简单测试代码

 

复制代码
#include <iostream>
#include <lua.hpp>

int main()
{
    lua_State *L = luaL_newstate();
    luaL_openlibs(L);
    if (0 != luaL_dofile(L, "main.lua"))
    {
        std::cout << lua_tostring(L, -1) << std::endl;
    }

    std::cout << "..." << std::endl;
    system("pause");
    return 0;
}
复制代码

 

复制代码
function babe_tostring(...)
    local num = select("#", ...);
    local args = { ...};
    local outs = { };
    for i = 1, num do
        if i > 1 then
            outs[#outs + 1] = "\t";
        end
        outs[#outs + 1] = tostring(args[i]);
    end
    return table.concat(outs);
end  
  
local babe_print = print;
local babe_output = function(...)
    babe_print(...);

    if decoda_output ~= nil then
        local str = babe_tostring(...);
        decoda_output(str);
    end
end

babe_print("hello");
babe_print("你好");
babe_output("Hello world, from ",_VERSION,"!\n");

-- 单行注释
--[=[ 多行注释 1 ]=]
--[[ 多行注释 2 --]]
--os.execute("pause");
复制代码

 

运行现象:

 

include files:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include;
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include;
C:\Program Files (x86)\Windows Kits\8.0\Include\um;
C:\Program Files (x86)\Windows Kits\8.0\Include\shared;
C:\Program Files (x86)\Windows Kits\8.0\Include\winrt;
C:\WinDDK\7600.16385.1\inc;
C:\Qt\Qt5.5.1\5.5\msvc2012\include;
C:\lua-5.3.4\include;
D:\openssl\openssl-1.0.2m\include;

 

source files:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\src\mfc;
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\src\mfcm;
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\src\atl;
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\crt\src;
C:\WinDDK\7600.16385.1\src;
C:\Qt\Qt5.5.1\5.5\Src;
C:\lua-5.3.4\src;
D:\openssl\source\openssl-1.0.2m;

 

posted @   lsgxeva  阅读(4158)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示