最近有空打算把lua的源码仔细看下,就用vs编个lib,需要细看时在断点进去看比较详细。
下面主要是编 链接库解释器 的说明


  • Lua由三部分组成,即

    • Lua链接库
    • Lua解释器
    • Lua编译器

    因此,对于Lua源代码的编译主要就是编译Lua链接库、Lua解释器和Lua编译器


  • 已经把工程上传到git,可以用 vs2013 直接生成并加载运行 test.lua 文件,lua版本是5.2.2

    • https://github.com/yangxuan0261/lua522
  • 云风的 Lua 源码欣赏
    • http://www.codingnow.com/temp/readinglua.pdf

1. 编译Lua链接库

  1. 新建一个vs工程 lua5.2.2,并考入lua的源码

  2. 使用Visual Studio创建一个VC++项目,项目命名为Lua53,项目类型为 静态库不设置预编译头

  3. 加入一个预处理的定义 _CRT_SECURE_NO_WARNINGS,不然报这个错:C4996 ‘strerror’: This function or variable may be unsafe.

  4. 删除Visual Studio自动创建的.cpp文件及其对应的.h文件。将下载的Lua代码解压,将src目录下的全部文件引入到项目中,然后删除 lua.cluac.clua.hpp 这三个文件。

  5. 生成。会得到一个 lib 的文件,这就是我们编译得到的 Lua链接库


2. 编译Lua解释器

  1. 在同一个解决方案下继续创建VC++项目,项目命名为Lua,项目类型为 控制台应用程序不设置预编译头

  2. 加入一个预处理的定义 _CRT_SECURE_NO_WARNINGS,不然报这个错:C4996 ‘strerror’: This function or variable may be unsafe.

  3. 删除Visual Studio自动创建的.cpp文件及其对应的.h文件。将下载的Lua代码解压,将src目录下的全部文件引入到项目中,然后删除 luac.c 这个文件。

  4. 生成。会得到一个 exe 的文件,这就是我们编译得到的 Lua解释器


3. 编译Lua编译器

  1. 在同一个解决方案下继续创建VC++项目,项目命名为Lua,项目类型为控制台应用程序、不需设置预编译头。(同解释器一样)

  2. 加入一个预处理的定义 _CRT_SECURE_NO_WARNINGS,不然报这个错:C4996 ‘strerror’: This function or variable may be unsafe.

  3. 删除Visual Studio自动创建的.cpp文件及其对应的.h文件。将下载的Lua代码解压,将src目录下的全部文件引入到项目中,然后删除lua.c这个文件。

  4. 生成。会得到一个Luac.exe文件,这就是我们编译得到的Lua解释器。

Visual Studio编译Lua库相关推荐

  1. lua基础学习(1):使用Visual Studio编译lua和luac

    lua基础学习(1):使用Visual Studio编译lua和luac 0. 背景 本篇博客作为lua基础学习的第一篇博客,主要介绍使用Visual Studio对lua5.0进行编译,目的是获得l ...

  2. 使用 Visual Studio 编译 wget 为库文件

    添加代码与预编译指令与上一篇使用 Visual Studio 编译 wget 为可执行文件一致,区别在于这回建的是静态库工程(编译为动态库过程类似:)) 从wget的main函数开始读下来,发现问题不 ...

  3. 【C 语言】动态库封装与设计 ( Windows 动态库简介 | Visual Studio 调用动态库 )

    文章目录 一.Windows 动态库简介 二.Visual Studio 调用动态库 一.Windows 动态库简介 在 C:\Windows\System32 目录中 , 存放着 Windows 中 ...

  4. 【Qt】Visual Studio编译Qt项目报Qt Version错误

    00. 目录 文章目录 00. 目录 01. 问题描述 02. 开发环境 03. 问题分析 04. 问题解决 05. 附录 01. 问题描述 使用Visual Studio编译Qt项目时候,报以下错误 ...

  5. VC++编译lua库 无法解析lua符号问题

    VC编译lua库 出现错误: 错误 36 error LNK1120: 21 个无法解析的外部命令 C:\Users\luozhuang\Desktop\onscripter-20120416VC\R ...

  6. Visual Studio使用opencv库

    1.准备好与vs版本对应的OpenCV,下载网址:https://opencv.org/release/ 2.opencv 配置环境变量 ①. 在环境变量中添加:OPENCV_DIR,它的值指向Ope ...

  7. visual studio编译boost1.73.0静态库32位和64位

    使用vs2015编译32位 REM 使用vs2015,如果vs2019将下面的vc14替换为vc142(特殊:--toolset=msvc-14.2 CALL bootstrap vc14 CALL ...

  8. Qt 联合Visual Studio编译打包发布

    1.qt 查找项目中使用到的qt动态链接库: 步骤如下 ①打开项目使用的windeployqt工具(qt自带的工具): ②进入到文件夹所在目录:使用 cd 命令 ③使用命令:windeployqt N ...

  9. visual studio编译错误集(转)

    1.error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 在项目属性-&g ...

最新文章

  1. Linux 文件 IO
  2. For in + 定时器
  3. iscroll.js 下拉刷新和上拉加载
  4. Spring Boot系列教程六:日志输出配置log4j2
  5. 酷客多小程序受邀参加 中国县域连锁药店发展峰会
  6. VDI成长之路:Windows桌面优化配置(持续更新-20120227)
  7. C++构造函数(复制构造函数)、析构函数
  8. Linux(centos7下载安装)
  9. 【通信系统信道估计】
  10. 博思得标签打印机驱动_博思得打印机驱动
  11. 笔记本电脑如何安装Linux系统
  12. 关于数据库系统的查询处理
  13. PHP实现站内信设计思路与方案
  14. Digital Photo Professional 4 如何导出jpg
  15. 想念食品更新招股书:利润下滑、毛利率走低,孙君庚夫妇为实控人
  16. ofd格式文件转换成pdf格式的方法
  17. 如何把char类型的数字字符转换成int类型
  18. 【人工智能行业大师访谈】1. 吴恩达采访 Yoshua Bengio
  19. linux版本怎么安装qq游戏,Ubuntu中使用Wine玩QQ游戏(附图)
  20. java mp3,audio - 在Java中播放.mp3和.wav?

热门文章

  1. 【二】2D测量 Metrology——set_metrology_object_fuzzy_param()算子
  2. DIN3系列小体积低成本变送器模块
  3. 《一笔流书》草书字体视觉再设计—以张旭《李清莲序》为例
  4. 积分返利概念我们该怎样去结合模式去运营呢?
  5. 架构师眼中的文化:组织不扁平,3天后信息衰减到20%
  6. Project 2007安装出现错误及解决方案
  7. 曾国藩《挺经》卷十六荷道
  8. 曾国藩《挺经》卷十五忠疑
  9. 长生不老药?售价八亿?
  10. ffmpeg php 抠像_利用 Avisynth 2.5.8 的 ColorKeyMask 功能实现视频抠像