探索C++
学了一段时间Lua,显然直接在项目中使用是很不方便,google了一下,似乎大家都对luabind这个lua包装类青睐有加,于是我也随大势想用用看。 先做好准备工作,下载了luabin 0.8.1源码,Boost 1.3.8源码和lua 5.1.4源码,编译环境是VS2008 SP1。之前在网上看到一些文章说这些开源软件之间的版本依赖比较敏感,可能会有这样那样的问题,动手之前有些惶恐。 幸运的是,编译过程很顺利,如下: 1.编译lua 5.1.4 进入VS2008的命令行工具,定位到lua的源码目录下,执行命令etc\luavs.bat,没什么问题的话很快就可以编译好lua,得到lua51.lib和lua51.dll。 2.编译luabind 解压下载回来的luabind压缩包,假设解压到d:\luabind-0.8.1\,Boost解压到d:\boost 1_38_0\,lua解压到d:\lua 5.1.4\ 在VS中新建一个静态库项目,将d:\luabind-0.8.1\src下的源码全部添加到项目中,然后在项目中新建luabind和luabind\detail\两个虚拟文件夹,对应的将d:\luabind-0.8.1\luabind和d:\luabind-0.8.1\luabind\detail下的文件添加到文件夹中。 然后为项目添加附加包含目录,右键点击项目节点->属性->配置属性->C\C++标签下,在附加包含目录中填入d:\luabind-0.8.1\;d:\boost 1_38_0\k;d:\lua 5.1.4\src\。然后修改项目字符集为多字节字符集。 准备就绪,生成项目。在我的环境中编译很顺利,没有出现任何问题,成功后会得到luabind.lib。 接下来就按照惯例来写一个hello world程序作为使用luabind的第一步。 在VS中新建一个控制台项目,类型为DLL,命名项目为Hello World,然后键入以下代码:
注意,在Windows环境下init函数之前是要加__declspec(dllexport)才能将函数导出的,而luabind的文档中的环境是linux,默认不用加__declspec(dllexport)也可以导出(就因为这个折腾了我半天才把hello word成功运行)。 编译项目,(记得将luabind.lib和lua51.lib添加到链接选项中:项目属性->连接器->输入->附加依赖文件,加入luabind.lib和lua51.lib)。 将hello world.dll放到lua51.dll和lua.exe所在的目录下。 打开lua命令行,键入: 测试成功,enjoy。
Powered by: C++博客 Copyright © 林公子