在windows下开发lua,尝试编译一下。
首先要说明的是,如果你只是想用,可以去找你想要的二进制库文件,下载下来就可以直接使用了,例如windows下的二进制文件包括,
http://luabinaries.sourceforge.net/download.html
https://sourceforge.net/projects/luabinaries/files/5.4.2/Windows%20Libraries/
https://www.lua.org/versions.html#5.4
https://github.com/rjpcomputing/luaforwindows/releases
由于开发时使用下载的库发现大家各不相同,编译时不是缺这个就是少那个,比较烦。
看了一下,lua的文件比较少,自己编译也不难,所以直接编译一回吧。
(1)新建项目
总共新建了4个项目,其中luaVsDll和luaVsStaticLib包括了lua的所有源码(这两个项目不包括lua.c和luac.c)
lua和luac项目,每个项目都只包含lua.c和luac.c这两个文件 ,不过要注意lua项目中要把luac.c中的main注释掉;luac项目中要把lua.c中的main注释掉。
(2)c/c++ ---- 常规 ---- 附加包含目录
4个项目的包含路径都是一致的,比如我的是在
E:\wLua\luaVsProject\luaVsStaticLib\src
使用相对路径的话,配置的附加包含目录就要写成
$(SolutionDir)luaVsStaticLib\src
(3)c/c++ ---- 高级 ---- 编译为 ---- C代码编译
(4)不使用预编译头
(5)对于dll 项目,要定义dll输出:c/c++ ---- 预处理器 ---- 预处理定义:添加LUA_BUILD_AS_DLL
编译时碰到的问题是,lua可以引用dll编译,但是luac只能引用静态库,原因是其中有几个函数在动态库中没有导出,不清楚这个会不会在使用中出现问题。
如果需要的话,需要修改那个LUAI_FUNC的定义才行;但我又不想修改源码。
本文结束
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)