文档章节

用vs2013编译lua静态库

AndyZhouX
 AndyZhouX
发布于 2017/08/31 19:28
字数 374
阅读 4
收藏 0
点赞 0
评论 0
Lua

1.下载lua源码

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

  b. 在wizard界面选择 static Library;不选择Precomplied Header(预编译头)

3.往工程中添加代码  

   a. 复制 F:\lua-5.x\src 目录下的*.h文件到项目的Header Files目录下 

   b. 复制 F:\lua-5.x\src 目录下的*.c文件到项目的Code   Files目录下

        注意: 需要注意的是 lua.c  和luac.c 不能拷贝进去,这两个文件不能编译

4.   配置项目的属性,在项目的“配置属性” 界面中操作  

  a. Configuration Properties -> C/C++  -> General -> Additional Include Directories  

       添加 F:\lua-5.x\src

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

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

5.  在配置属性->c/c++/预处理器定义下添加_CRT_SECURE_NO_WARNINGS

此时编译就会产生一个静态库了。

 

测试

新建一个新的win32控制台工程Test。配置:

a) 在Test属性中配置VC++ Directories > Library Directories 添加第5步编译出的lualib.lib的路径

b) 在Test属性中配置C/C++ > Genaral > Additional Include Directories 添加lua源代码所在目录

c) 在Test属性中配置Linker > Input > Additional Depencies 添加lualib.lib

添加一个main.cpp

 

#include "stdafx.h"
using namespace std;
#include <iostream>

#pragma comment(lib,"lua.lib")

#include "lua.hpp"

int _tmain(int argc, _TCHAR* argv[])
{

    lua_State *l = luaL_newstate();
    luaL_openlibs(l);
    luaL_dofile(l, "D:/CodeTest/test.lua");
    lua_close(l);
    return 0;
}

© 著作权归作者所有

共有 人打赏支持
AndyZhouX
粉丝 1
博文 98
码字总数 49218
作品 0
深圳
程序员
lua脚本在游戏中的应用

一,为什么要在游戏中使用脚本语言? 要解释这个问题首先我们先来了解一下脚本语言的特性: 1,学习门槛低,快速上手。 2,开发成本低,可维护性强。 3,动态语言,灵活性高。 相对于C/C++这...

borey ⋅ 2014/09/12 ⋅ 5

四种环境下编译生成nanomsg库

VS2013编译生成nanomsg库文件 因为工作中用到了nanomsg,又需要编译成库来使用,发现网上资料很少,所以做此记录。 编译准备,CMake工具软件和下载好的nanomsg源码包。我的是CMake 3.6.2,n...

容我三思兮 ⋅ 2017/04/14 ⋅ 0

VS 2015 - Win XP (v140_xp) 编译工具 ucrtbased.dll缺失

Visual Studio 2015 - Windows XP (v140_xp) 编译工具 ucrtbased.dll缺失 先写结论,最好不要使用VS2015-WinXP编译工具来编译VC++程序,因为你最终会发现,编译出来的程序如果是动态链接到运...

郝槟楠 ⋅ 01/08 ⋅ 0

关于vs2012/2013的C编译器生成的exe的向后兼容xp的问题

转自:http://blog.sina.com.cn/s/blog_5f2e119b0101s2uy.html 问题一:编译出来的exe在xp上面运行提示“不是有效的win32应用程序” 在vs2012/2013版本里面,其 自带的c编译器cl.exe,若直接...

薛蕊 ⋅ 2014/06/10 ⋅ 0

使用VS2013编译ICE静态库

@鉴客 你好,想跟你请教个问题:我最近在学习使用ICE,由于我用的其他库都是使用MT编译的,但是直接用ICE官网下载安装的包不能用MT。。。没办法只能下ICE的源码来编译成静态库。。网上搜到你...

九月城 ⋅ 2015/04/22 ⋅ 0

lua c语言混合编程入门

1.现在lua源码包,解压得到源码 2.在vs2008(我用的是这个)上建立“静态库(S)”工程,去掉"预编译头(P)" 3.添加源码到所建的工程下面,去掉lua.c(这是lua解释器,如果在其他语言中使用lua,这...

ryany ⋅ 2011/04/20 ⋅ 0

静态库和动态库的编译切换

如果你想在同一个target上既编译静态库,又能编译动态库,那么稍微修改下 xmale.lua就行了: 好了,现在默认编译的时候,会生成静态库:libtest.a 如果你想生成动态库,只需要执行: 配置成动...

ruki ⋅ 2015/12/28 ⋅ 0

一个go lua binding完工

最近对go语言比较感兴趣,想试用go来做点东西,go做主框架,动态加载一些程序来执行。由于现在go语言不支持go模块的动态链接,所以需要选用一个脚本语言来补充,找了一下,感觉lua比较符合要...

偃鼠饮河 ⋅ 2012/07/01 ⋅ 4

在VS2013中使用boost库遇到的问题及解决

最近的项目需要集成一个使用了boost库的开源库。原本应该是比较简单的工作,因为使用的是VS2013,而boost库是最新下载的1.60.0版本(注:写这篇文章时1.61.0刚好release),结果还是费了一点工...

SunLightJuly ⋅ 2016/05/17 ⋅ 0

自己编译lua5.2.1

官方发布库还是5.1.4的,而且由于失误导致必须带着2个dll文件。最新的源代码是5.2.1的,我们自己编译吧,目标是静态库,免得带着 dll 满世界跑。 下载源代码:http://www.lua.org/ftp/lua-5....

四彩 ⋅ 2013/02/10 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

linux 安装docker

通过以下命令下载安装docker wget -qO- https://get.docker.com | sh 执行以上命令后输出以下内容说明安装成功,注意红框中的内容,docker安装成功后默认只有root能使用,红框中给出的提示是...

haoyuehong ⋅ 22分钟前 ⋅ 0

482. License Key Formatting - LeetCode

Question 482. License Key Formatting Solution 思路:字符串转化为char数组,从后遍历,如果是大写字母就转化为小写字母,如果是-就忽略,如果遍历了k个字符(排除-)就追加一个-。 Java实现...

yysue ⋅ 41分钟前 ⋅ 0

聊聊spring cloud gateway的LoadBalancerClientFilter

序 本文主要研究一下spring cloud gateway的LoadBalancerClientFilter GatewayLoadBalancerClientAutoConfiguration spring-cloud-gateway-core-2.0.0.RELEASE-sources.jar!/org/springfram......

go4it ⋅ 今天 ⋅ 0

详解:Nginx反代实现Kibana登录认证功能

Kibana 5.5 版后,已不支持认证功能,也就是说,直接打开页面就能管理,想想都不安全,不过官方提供了 X-Pack 认证,但有时间限制。毕竟X-Pack是商业版。 下面我将操作如何使用Nginx反向代理...

问题终结者 ⋅ 今天 ⋅ 0

002、nginx配置虚拟主机

一、nginx配置虚拟主机可分为三种方式,分别为: 1、基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2、基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站...

北岩 ⋅ 今天 ⋅ 0

shell脚本之死循环写法

最近在学习写shell脚本,在练习if while等流程控制时,突然它们的死循环写法是怎么样的?经过百度与亲测记录如下: for死循环 #! /bin/bashfor ((;;));do date sleep 1d...

hensemlee ⋅ 今天 ⋅ 0

苹果的ARKit2.0有多可怕,看了就知道

序言 ARKit主要由三部分组成: 跟踪(Tracking) 跟踪是ARKit的核心组件之一,其提供了设备在物理世界中的位置与方向信息,并对物体进行跟踪,如人脸。 2.场景理解(Scene Understanding) 场...

_小迷糊 ⋅ 今天 ⋅ 0

5.1 vim介绍 5.2 vim移动光标 5.3 ,5.4vim一般模式下移动光标,复制粘贴

vim命令 vim是vi的一个升级版;vim可以显示文字的颜色 安装vim这一个包vim-enhanced 如果不知道安装包,可以使用 命令下面命令来查看vim命令是那个包安装的。 [root@linux-128 ~]# yum prov...

Linux_老吴 ⋅ 今天 ⋅ 0

vim一般模式

vim 是什么 vim是什么 ? 在之前接触Linux,编辑网卡配置文件的时候我们用过了vi ,vim简单说就是vi的升级版,它跟vi一样是Linux系统中的一个文本编辑工具。 如果系统中没有vim ,需要安装一...

李超小牛子 ⋅ 今天 ⋅ 0

docker实战

构建企业级Docker虚拟化平台实战 重点剖析虚拟化和云计算概念; 分析Docker虚拟化的概念和原理; 从0开始实战Docker虚拟化平台; 基于Docker构建Nginx WEB服务器和CentOS虚拟机; 基于开源监...

寰宇01 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部