lua如何在vs2010中配置静态库

来源:互联网 发布:淘宝客的pid是什么 编辑:程序博客网 时间:2024/05/21 18:32

(本文主要是是参考:点击打开链接的文章,然后加入自己的一些补充,在此感谢该作者)

一、建立lua源代码工程,编译lua的静态库

1、下载Lua源码

a.下载地址  点击打开链接 ,我下载的版本是lua5.2.3

        b.下载后解压到一个目录下,比如E:\lua-5.2.3  版本不同,编程时使用的函数可能略有区别,但是影响不大

2、在VS2010中新建一个静态库项目
    a. 选择新建 Win32 console project(也就是控制台项目)

     b. 在wizard界面选择 static Library(静态库)

c.不选择Precomplied Header(“预编译头”)

3、往工程中添加代码(Add -> Existing Item)
     a 添加E:\lua-5.2.3\src 目录下的*.h文件到项目的Header Files目录下(解决方案->右击“头文件”文件夹->添加->现有项)
     b 添加E:\lua-5.2.3\src 目录下的*.c文件到项目的Source Files目录下(解决方案->右击“头文件”源件夹->添加->现有项
4、(可选)添加附属目录
    a Configuration Properties -> C/C++-> General -> Additional Include Directories 

       添加E:\lua-5.1.5\src

(中文:右击lua项目->属性->配置属性->C/C++->常规->附加包含目录)

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

(中文:中文:右击解决方案->属性->配置属性->C/C++->高级->编译为->编译为C代码/TC

        这里的选择将影响后面代码中如何指定编译链接方式,后面的测试选择的是Compile as C code
5、 (可选)生产项目 Build
     如果是DEBUG mode 将在Debug目录下看到一个lua.lib文件,Release mode的lib文件在Release文件下

二、添加使用者

1.前边都是静态库的配置,后面添加一个项目尝试在C/C++代码中, 调用使用刚才的lua静态库(文件->添加->新建项目)

2.在解决方案中添加一个 Win32 console project,项目名称命名为luatest,后面wizard界面中的选项无需修改
3.添加对lua项目的引用

    a Common Properties -> Framework and References -> Add New References 

(中文:右击luatest项目->属性->通用属性->框架和引用->添加新引用->选择之前创建的“lua”静态库项目)

   选择lua项目(目前来说应该只有一个lua项目,我们在第一步骤中创建的静态库名称是lua)
3、添加对头文件的include directory
   a Configuration Properties -> C/C++-> General -> Additional Include Directories ->添加E:\lua-5.1.5\src

4.设置默认的项目,否则要去手动运行生成的可执行文件luatest.exe
     Solution -> Properties -> Common Properties ->Startup Project ->Single startup project

(右击解决方案(注意不是lua项目,也不是luatest项目)->属性->通用属性->启动项目->选择单启动项目->选择luatest项目)
5.在项目的的在luatest.cpp文件中添加下面的代码

#include "stdafx.h"/*extern "C"  {  #include <lua.h>  #include <lualib.h>  #include <lauxlib.h>  }*/#include "lua.hpp"int _tmain(int argc, _TCHAR* argv[]){lua_State *L = ::luaL_newstate();      luaL_openlibs(L);        const char *buf = "print('Hello World')";      luaL_dostring(L,buf);            lua_close(L);      getc(stdin);      return 0;  return 0;}
注意:

a.添加extern“C”一段,或者直接包含“lua.hpp”头文件都是可以的,因为"lua.hpp"头文件中写的就是extern"C"那段内容

b.lua-5.2.3版本使用的是luaL_newstate()函数获得解释器,而不是lua_open()函数了

6.按F5或Ctrl+F5,将会在控制台中输入了Hello World。



0 0
原创粉丝点击