Windows下的lua-5.3.4安裝過程


Windows下的lua-5.3.4安裝過程

 

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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM