最近的项目中用到了lua,开始是直接使用lua自带的API进行调用,不过堆栈调来调去很麻烦,于是上网找lua 针对 C++的封装,经过一番权衡,最后选用了 luaplus。
本以为应该很容易就弄出来,结果坑爹的搞了一上午,在此写下编译过程,以方便后来人
1,下载源代码
http://luaplus.org/
这个是官网,不过坑爹是下载的资源只有git 这种方式,太麻烦。。(版本控制软件)
于是不甘心,继续google搜索,最终让我找到了蛛丝马迹:
http://luaplus.org/issues/4
这个bug填的也是个同胞,呵呵。
根据这个bug的回复,发现luaplus转到了github上。
https://github.com/jjensen/luaplus51-all
根据如上的链接,我们可以获取源代码了。
2,编译
按照wiki中的描述,要使用Jam生成VC的工程文件,不过经过笔者各种尝试,没成功。
不甘心之下继续上网搜索,发现一些帖子抽取源代码,自己手动建工程的方式编译的,于是尝试下,发现可行:
方法简述如下:
进入源代码目录中的luaplus子目录,由于我要编译的是静态库版本,所以再进入到StaticLib子目录中,使用文本编辑器打开LuaPlusStaticLib.jam 文件。
文本中主要注意的是:
LUAPLUS_SRCS 后面的都是工程编译所要用的源代码文件。
C.Defines LuaPlusShared 后面的 是预编译宏,需要加到工程中。
然后就是定好输出的路径和名称,点击编译即可了。
PS: 由于源代码文件太多了,逐个筛选太麻烦,截止该文发布,luaplus目录下和luaplus\src子目录下的文件,除了 luac.c, lua.c, LuaPlusAll.cpp外,都需要加入到工程中,
如果版本变化了,就简单参照一下吧。
PS2:这个版本有一个文件编译的时候会报错, 问题是返回值是void类型函数,写了返回值,把return去掉,重新编译即可。
OVER