首先说一下5.3貌似没有这个问题, 可是眼下最新版的luasocket 3.0 rc1仅仅能支持5.2, 5.3调用的话程序会崩溃(不知道是不是我没配置好)

出现这个问题的解决办法, 想必网上有非常多资料了, 就是C model的静态和动态链接的问题, lua5.2不支持 >= 2的静态链接, 而假设在编译得到lua.lib的时候用了静态链接, 

编译得到socket.dll 和 mime.dll的时候链接了它, 那么在命令行解释的时候, 相当于链接了两次, 就会出现这种错误.

非常可惜, 如今网上大多数是linux下的解决方式, 好不easy遇到一两个windows下的又不知所云, 于是我自己摸索出了一套方案, 编译工作交给了VS2012.

一. 得到lua.dll和lua.lib

首先新建一个vc++空项目, 将 lua/src 中除了luac.c和lua.c的.h.c文件所有导入, 项目 -> 属性设置 将配置类型改为dll, 而且在C/C++ -> 预处理器中加上

_CRT_SECURE_NO_WARNINGS
LUA_BUILD_AS_DLL

这两项.

然后又一次生成项目就能够得到dll和lib了.

二. 得到解释器

将项目内的文件所有移去, 将lua.c增加, 然后在链接器中设置相关内容, 使得项目能够链接到刚才生成的lib.
然后将配置类型改回exe, 生成项目得到解释器文件lua.exe.
有须要的话能够移除lua.c, 增加luac.c得到编译器.
将lua.exe 和 lua.dll放在同一文件下就能够使用了.

三. 编译luasocket相关项目

将luasocket 3.0从github上扒下来以后, 根文件夹有个Lua52.props, 将其改为Lua.props, 然后直接打开 luasocket.sln
解决方式中包括了mime和socket, 他们的配置方式是同样的:
1. 注意配置类型是不是dll, 不是的话改成dll, 然后目标文件名称也改改.
2. VC++文件夹中的包括文件夹和引用文件夹须要包括 lua/src文件夹
3. 在链接器中设置相关内容, 使得项目能够链接到刚才生成的lua.lib.
编译以后, 取出两个dll, 以及一些相关的.c.h 放到对应位置就好了.
 详细放在哪里呢.........
在lua文件里写一句 http = require("socket.http") 执行, 你就能依据报错知道放哪里了
放的地方能够改, 參考点击打开链接
大概就这样了....能够愉快地写个爬虫去爬一些 '有趣' 的内容了哦呵呵....

Lua5.2 请求 luasocket 相关模块时的 multiple-lua-vms-detected的更多相关文章

  1. cookie是指web浏览器存储的少量数据,该数据会在每次请求一个相关的URL时自动传到服务器中(转)

    基本概念:cookie是指web浏览器存储的少量数据,该数据会在每次请求一个相关的URL时自动传到服务器中. 以博客园为例,我们看看cookie有哪些属性: 1.Name:cookie的名称: 2.V ...

  2. 5. [mmc subsystem] mmc core(第五章)——card相关模块(mmc type card)

    零.说明(重要,需要先搞清楚概念有助于后面的理解) 1.mmc core card相关模块为对应card实现相应的操作,包括初始化操作.以及对应的总线操作集合.负责和对应card协议层相关的东西. 这 ...

  3. Vue 封装axios(四种请求)及相关介绍(十三)

    Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...

  4. Nginx相关模块学习使用实践指南

    转载自:https://www.bilibili.com/read/cv16150654?spm_id_from=333.999.0.0 0x01 Nginx 常用模块使用实践 官方模块使用手册:ht ...

  5. linux显示git commit id,同时解决insmod模块时版本不一致导致无法加载问题

    linux内核默认会包含git的commit ID. 而linux的内核在insmod模块时,会对模块和内核本身的版本做严格的校验.在开发产品时,改动内核后,由于commit ID变更,会导致linu ...

  6. 【转】Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历))

    Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历)) 本文由 Luzhuo 编写,转发请保留该信息. 原文: http://blog. ...

  7. python 加密算法及其相关模块的学习(hashlib,random,string,math)

    加密算法介绍 一,HASH Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种 ...

  8. Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历))

    Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历)) 本文由 Luzhuo 编写,转发请保留该信息. 原文: http://blog. ...

  9. ansible软件相关模块丶计划任务,剧本

    软件相关模块 yum rpm 和yum 的区别 rpm:redhat package manager yum可以解决依赖关系 yum 源配置 [epel] name=Extra Packages fo ...

随机推荐

  1. Coursera Algorithms week2 基础排序 练习测验: Intersection of two sets

    题目原文: Given two arrays a[] and b[], each containing n distinct 2D points in the plane, design a subq ...

  2. JavaScript中变速运动的数学模型构建

    AB两地直线距离相距为S,机器人β从A点向B点行进.已知机器人β的每间隔固定时间行进一段路程,其下次行进的距离为当前距离B点路程的1/q(q为正整数),求机器人第n次行进距离的表达式an以及前n项和公 ...

  3. AE错误代码解释

    每当我们在进行AE开发,出现错误时经常会出现错误代码,但是我们并不知道它到底代表什么意思,这里的而错误编码我们可以对照着找到我们需要的时候常详细信息(问题是,经常还是会出现没有错误编码HRESULT ...

  4. Cracking the Coding Interview 4.8

    You are given a binary tree in which each node contains a value. Design an algorithm to print all pa ...

  5. [Luogu 2331] [SCOI2005]最大子矩阵

    [Luogu 2331] [SCOI2005]最大子矩阵 题目描述 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 输入输出格式 ...

  6. Android点击跳转到淘宝的某一商品详情页或者某一店铺页面

    最近项目的有个需求是点击购买资料按钮进入淘宝界面,简单分析一下,如果用户手机有淘宝就打开淘宝的页面,没有的话也可以选择使用webView进行展示,还是使用手机浏览器进行展示. 判断有无淘宝的代码就不贴 ...

  7. classNum 表示学生的班号,例如“class05”。 有如下List  List list = new ArrayList();

    package a927; import java.util.ArrayList; import java.util.List; class Student { private String name ...

  8. css+js+html实现的遮罩

    ——————页面遮罩(CSS+JS+HTML)—————— HTML: <div id="mask" class="mask"></div&g ...

  9. 用JSP实现动态交互

    一.什么是JSP? 1.在HTML中嵌入Java脚本代码 2.由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本代码 3.然后将生成的整个页面信息返回给客户端   二.为什么需要基于B/S技术的 ...

  10. sql server 游标fetch简单用法

    //遍历tmp_check的年份和月份 DECLARE @year ) DECLARE @month ) DECLARE cur CURSOR FOR SELECT nf,yf FROM tmp_ch ...