VS2010编译Lua程序(lua-5.2.3)

编译静态链接库

    1.下载Lua源码 

    下载后解压到一个目录下,这里假设解压到D:\win32Lua 注意下载的版本,如果是5.2.x,后面代码中的C API发生了改变

    2)在VS2010中新建一个静态库项目,项目命名为lua
        a 选择新建 Win32 console project

        b 在wizard界面选择 static Library;不选择Precomplied Header

    3)往工程中添加代码

        a 复制D:\win32Lua\lua-5.2.3\src 目录下的*.h文件到项目的Header Files目录下

        b 复制D:\win32Lua\lua-5.2.3\src 目录下的*.c文件到项目的Code Files目录下

    注:需要注意的是 lua.c  和luac.c 不能一起编译进去。

    4)配置项目的属性,在项目的“配置属性” 界面中操作
        a Configuration Properties -> C/C++-> General -> Additional Include Directories 

         添加D:\win32Lua\lua-5.2.3\src

        b Configuration Properties -> C/C++-> Advanced -> compile as 

     这里的选择将影响后面代码中如何指定编译链接方式,后面的测试选择的是Compile as C code

                    

5)生产项目 Build
    如果是DEBUG mode 将在Debug目录下看到一个lua.lib文件,Release mode的lib文件在Release文件下

C/C++代码中调用lua

    1)在解决方案中添加一个 Win32 console project,项目名称命名为testlua,后面wizard界面中的选项无需修改
    2)添加对lua项目的引用
        a Common Properties -> Framework and References -> Add New References 

     选择lua项目

    3)添加对头文件的include directory
        a Configuration Properties -> C/C++-> General -> Additional Include Directories 

    添加D:\win32Lua\lua-5.2.3\src

示例代码:

// testlua.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <stdio.h>
#include <string.h>

extern "C"
{
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
}
int _tmain(int argc, _TCHAR* argv[])
{
	lua_State *L = luaL_newstate();
	luaL_openlibs(L);
	luaL_dofile(L,"test.lua");

	//const char *buf = "print('Hello World')";
	//luaL_dostring(L,buf);

	lua_close(L);
	return 0;
}

test.lua

function show()  
    print("helloworld")
end  
  
show()  

运行效果:

                

引用博文:http://blog.csdn.net/berdy/article/details/7925040

lua学习资料:https://pan.baidu.com/s/1tMV7OsfWXNh6KQl2jsouZQ 提取码: itrc 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热血枫叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值