windows下编译lua源码

引用http://m.blog.csdn.net/blog/cdsdtt123/38538407

环境:

win7 +vs2013

lua源码是5.2.3

新建项目

Lua的源代码编译后会生成三个对象:Lua库、基于该库的独立解释器以及字节码编译器。所以,在solution中,我们也要建立三个project与他们对应。在这里,暂且称整个solution为liblua,三个project分别为liblua、lua、luac,类型都可以选择C++的空项目。lua.c放在lua项目下,luac.c放在luac项目下,其余的全部都是lua库的代码,放在liblua下。

亲测:

先生成liblua.dll, 所以在项目属性->配置属性->配置类型;选择动态库;

再生产lua.lib和liac.lib(会依赖上面生成的liblua.dll),配置类型选择静态库

项目配置

1、我们要设置lua以及luac依赖于liblua,这样可以保证liblua最先进行编译。(项目上右键,“项目依赖项”)

2、我们要让lua以及luac中包含lua头文件的预处理指令正常得到展开,把liblua加入到lua以及luac的预处理器搜索目录中。(项目属性,VC++目录,包含目录)

3、我们要让lua以及luac能够在链接时正常链接到liblua上:

  • 修改liblua项目的生成目标为静态库。(项目属性,常规,配置类型)
  • 让lua以及luac链接lua_lib.lib库。(项目属性,链接器,输入,附加依赖项)
  • 让lua以及luac搜索lua_lib.lib所在目录(即我们的生成目录),以正确的找到该库。(项目属性,链接器,常规,附加库目录或者项目属性,VC++目录,库目录)在本项目中是F:\lua\lua\liblua\debug
  • 添加包含目录,在本项目中是F:\lua\lua\liblua\liblua


在生成过程中如果出现如下情况,那么解决方法是:

warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(371) : 参见“sprintf”的声明

解决方法如下,三个项目都需要配置:

工程->属性->配置属性->C/C++->预处理器->预处理器定义

添加以下定义就可以解决:

_CRT_SECURE_NO_DEPRECATE
_SCL_SECURE_NO_DEPRECATE


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值