大致流程一致,但是他的github上的版本,没有Windows的版本。打开他的win的工程会提示缺少一个模块。

本人环境

  • cocos2dx 3.17.1 当前最新
  • skynet-无视-当前最新
  • VS2015(机器上同时装了多个VS)
  • WIN7
  • PYTHON 2.7.9
  1. cocos的下载地址,下载的稳定版

    Cocos2d-x stable versions

    http://www.cocos2d-x.org/download

  2. 安装python,一定要是python2.x的

    设置好环境变量就行

    CMD-》python -V 查看确认版本

    2.7.X

  3. 然后运行Cocos2dx3.17里面的setup.py开工。。

    因为我只在WIN下跑,所以enter就行。这些ndk、sdk、ant都是要下载的通通不用设置路径。

  4. 环境配置好后重启一波就能创建工程了

    我找的一个脚本

@echo off
set /p projectName=please input project name:
set /p packageName=please input package name:
@echo cocos new %projectName% -p %packageName% -l lua -d C:\demo1
cocos new %projectName% -p %packageName% -l lua -d C:\demo1
@echo Create Success!!!
  1. 再然后就是进目录打开VS工程。
  2. 巨坑马上就来了。

首先, 添加framework/cocos2d-x/external/lua/文件夹下

/bitop /lpack /lpeg /sproto

然后在lua_extension.c中添加些,东西,我直接把整个文件贴来了

#include "scripting/lua-bindings/manual/network/lua_extensions.h"

#if __cplusplus
extern "C" {
#endif
// socket
#include "luasocket/luasocket.h"
#include "luasocket/luasocket_scripts.h"
#include "luasocket/mime.h" // srpotol
#include "sproto/lsproto.h"
#if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID)
#include "bitop/bit.h"
#endif
#include "lpeg/lpeg.h"
#include "lpack/lpack.h" static luaL_Reg luax_exts[] = {
{"socket.core", luaopen_socket_core},
{"mime.core", luaopen_mime_core},
//add
{ "sproto.core", luaopen_sproto_core },
#if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID)
{ "bit", luaopen_bit },
#endif
{ "lpeg", luaopen_lpeg },
{ "string", luaopen_pack },
//add end
{NULL, NULL}
}; void luaopen_lua_extensions(lua_State *L)
{
// load extensions
luaL_Reg* lib = luax_exts;
lua_getglobal(L, "package");
lua_getfield(L, -1, "preload");
for (; lib->func; lib++)
{
lua_pushcfunction(L, lib->func);
lua_setfield(L, -2, lib->name);
}
lua_pop(L, 2); luaopen_luasocket_scripts(L);
} #if __cplusplus
} // extern "C"
#endif
  1. VS中在libluacocos2d目录里面建立对应的链接器(文件夹),把他们包含进来,

    /bitop /lpack /lpeg /sproto 这4个。

  2. 开始编译。。。。麻吉报错

错误(活动) 未定义标识符 "luaL_reg" libluacocos2d

真香分析后,发现这东西明明就在对应的luajit文件夹下面的头文件里面,

经过一番挣扎,我发现。。我只是把这个类型的定义复制过来,编译一次,他提示不能重复定义,再注释就PASS了。

//typedef struct luaL_Reg {
// const char *name;
// lua_CFunction func;
//} luaL_Reg; static const luaL_Reg R[] =
{
{ "pack", l_pack },
{ "unpack", l_unpack },
{ NULL, NULL }
};
  1. 继续编译 报错

LNK2019 无法解析的外部符号 _luaL_setfuncs

真香分析后发现,这个是5.2的API,在lsprotol.c中,将

这么一改就行。。。本来就是要用LUAJIT的。

//#ifndef luaL_newlib /* using LuaJIT */
#ifdef luaL_newlib /* using LuaJIT */

理论上来5.1的lua就支持5.2的一些用法了。

  1. 把他的SRC复制过来 你的里面就能在window里面跑了。

    https://github.com/ZhaoTop/CCSkynet/tree/master/TestSproto

理论上就OK了。收工。

参考

https://blog.csdn.net/qq_34497362/article/details/81780342

https://blog.csdn.net/lvyan1994/article/details/83578326

cocos2dx 3.17(Windows下) 接入skynet和sprotol的更多相关文章

  1. cocos2d-x 3.0rc开发指南:Windows下Android环境搭建

    安装工具 1. 配置JDK JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 本人的系统是Win7 ...

  2. [转帖]cocos2d-x 3.0rc开发指南:Windows下Android环境搭建

    原文请看:http://blog.csdn.net/linzhengqun/article/details/21663341 鲜红字体请注意:文中红色字体乃是本文博主阳光下的蒲公英添加.红色字体部分造 ...

  3. 在windows下用cygwin和eclipse搭建cocos2dx的android开发环境

    在windows下用cygwin和eclipse搭建cocos2dx(2.1.4)的android开发环境,2013-8-1更新. 一.准备工作 需要下载和安装以下内容,请根据自己的操作系统选择x86 ...

  4. 学习笔记——Windows下cocos2d-x,eclipse中自编译

    cocos2d-x创建的安卓项目导入eclipse后. 在项目属性中配置Builders. 在eclipse编译还需要配置相应的变量,即后面提到的cygwin编译中要添加的变量. D:/cygdriv ...

  5. Windows下快速建立cocos2d-x项目

    准备工作     1.根据当前系统版本,下载对应版本的Python         32位下载地址:http://www.python.org/ftp/python/2.7.5/python-2.7. ...

  6. [游戏开发日志]Windows下Cocos2d-x 3.14环境搭建

    总介绍 我们小组使用的是cocos2d-x的游戏开发引擎,因此在所有开发工作之前,我们需要对这个引擎进行环境的搭建. 搭建过程 VS2013的下载和安装 VS只是作为一个开发环境而已,简单来说就是敲代 ...

  7. Windows下Codeblocks调试Cocos2d-x项目体验(一次失败的体验)

    很久之前的一篇文章有介绍过在Ubuntu下安装Cocos2d-x3.11并使用Codeblock调试Cocos2d-x程序:http://www.cnblogs.com/moonlightpoet/p ...

  8. Lua + win 10 + vs2017的运行环境和创建cocos2dx 3.17的lua项目(亲测)

    转:https://blog.csdn.net/maoye198602102339/article/details/82047920   不管用什么引擎写游戏,脚本语言是少不了要接触的! 首先,我说的 ...

  9. 原创 C++应用程序在Windows下的编译、链接:第三部分 静态链接(二)

    3.5.2动态链接库的创建 3.5.2.1动态链接库的创建流程 动态链接库的创建流程如下图所示: 在系统设计阶段,主要的设计内容包括:类结构的设计以及功能类之间的关系,动态链接库的接口.在动态链接库中 ...

随机推荐

  1. IT兄弟连 HTML5教程 HTML5的曲折发展过程 浏览器之间的大战

    播放电影和音乐要使用播放器,浏览网页就需要使用浏览器.浏览器虽然只是一个设备,并不是开发语言,但在Web开发中必不可少,因为浏览器要去解析HTML5.CSS3和JavaScript等语言用于显示网页, ...

  2. pixijs shader 案例

    pixijs shader 案例 const app = new PIXI.Application({ transparent: true }); document.body.appendChild( ...

  3. 【数字图像分析】基于Python实现 Canny Edge Detection(Canny 边缘检测算法)

    Canny 边缘检测算法 Steps: 高斯滤波平滑 计算梯度大小和方向 非极大值抑制 双阈值检测和连接 代码结构: Canny Edge Detection | Gaussian_Smoothing ...

  4. Python【day 15-3】函数部分

    '''''' ''' 一.函数 1.函数定义 对功能或者动作的封装 在类中定义,就是方法 在类之外定义,就是函数 2.函数写法 1.定义或者申明函数 def 函数名(形参列表): 函数体(return ...

  5. django3-视图函数进阶

    1.视图函数的分类 FBV(fucntion base view) CBV(class base view) ,CBV根据定义的方法名 ,判断什么请求执行什么函数 2.FBV转换CBV (不太对劲) ...

  6. bower私服部署

    目录 bower私服部署 简介 工具清单 安装 安装nodejs 安装git 安装private-bower 配置private-bower 启动private-bower 开放端口 开机启动/注册为 ...

  7. iOS 常用算法之设计一个算法,验证某字符是否为合法IPV4字符

    浅析 : 一个IPV4字符由3个大于0小于255的数字 以及 3个点构成, 所有我们需要判断小数点数量是否满足条件, 以及小数点隔开的每部分是否满足条件即可. 思路: 1. 校验是否有3个小数点; 2 ...

  8. WindowServer优化

    Windows Server 2016 禁止自动更新 1. 打开cmd,输入sconfig,出现如下图: 2. 输入5回车,在输入m回车,完成关闭自动更新.

  9. CODING 2.0:如何通过设计给品牌创造价值?

    升级背景 伴随着 CODING 理念的全面升级,CODING 正构建起覆盖构想到交付的全覆盖工具链,用户注册即可实践敏捷开发与 DevOps,提升软件交付质量与速度. 一直以来,CODING 作为软件 ...

  10. 为什么 Redis 为什么如此受欢迎

    现在大多数开发人员都会听说过 Redis.Redis 是目前市场上最好的开源内存 NoSQL 数据库之一.它为前端以及后端服务(如键值查找,队列,哈希等)提供了非常多的帮助. 一.什么是 Redis? ...