编译静态库:
新建一个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