编译静态库:

新建一个LIBRARY的静态库工程,然后把SRC目录下的*.c和*.h复制到工程目录中

不需要lua.c luac.c lua.hpp三个文件,把*.c加入到工程中,*.h加不加入都无所谓,设置一下工程属性,主要是RELEASE一下然后编译,就会生成LIB文件


动态库编译:

新建一个DLL工程,然后把SRC目录下的*.c和*.h复制到工程目录中

不需要lua.c luac.c lua.hpp三个文件,把*.c加入到工程中,*.h加不加入都无所谓,把默认生成的UNIT.C和资源文件删掉,设置一下工程属性,主要是RELEASE一下,还有脱离BCB环境的几个地方然后编译,就会生成DLL文件


编译lua.exe:

新建一个控制台程序:选C或C++都可以,多线程可以选中,然后加入SRC的文件到工程中,和上面差不多,这次加入lua.c 另外两个不要.设置工程属性,编译生成.exe

如果遇到[Linker Error] Unresolved external '__isatty' referenced from C:\USERS\GUNXSWORD\DESKTOP\1111111\LUA.OBJ 类似的错误,在lua.c文件中查找isatty

#define lua_stdin_is_tty()_isatty(_fileno(stdin))

把_isatty改成__isatty就可以编译通过了


编译luac.exe:

和lua.exe一样,只是加入luac.c这个文件


使用LUA:

需要的头文件:

lauxlib.h

lua.h

luaconf.h

lualib.h

lua.hpp

lua.lib(这个是我们编译的)


使用时复制这些到工程目录,然后工程中加入LUA.LIB 再包含 lua.hpp这一个头文件,就可以了



编译以上程序时,可以在工程设置中,把waring去掉,要不一大堆,看着烦人!

编译两个EXE时,要把工程默认的.c或.cpp文件从工程中去掉

编译 lua(lua.exe,解析器) 时删除luac.c,加入lua.c。

编译 luac(luac.exe,字节码编译器)时删除lua.c,加入luac.c。

编译 lib和dll(liblua.a和lua.dll,库)时把lua.c和luac.c都删除。

lua.hpp就是调用时需要的头文件的包装


编译使用的是C++Builder 6.0 lua版本是5.3.2