cocos2dx 3.17(Windows下) 接入skynet和sprotol
大致流程一致,但是他的github上的版本,没有Windows的版本。打开他的win的工程会提示缺少一个模块。
本人环境
- cocos2dx 3.17.1 当前最新
- skynet-无视-当前最新
- VS2015(机器上同时装了多个VS)
- WIN7
- PYTHON 2.7.9
cocos的下载地址,下载的稳定版
Cocos2d-x stable versions
http://www.cocos2d-x.org/download安装python,一定要是python2.x的
设置好环境变量就行
CMD-》python -V 查看确认版本
2.7.X然后运行Cocos2dx3.17里面的setup.py开工。。
因为我只在WIN下跑,所以enter就行。这些ndk、sdk、ant都是要下载的通通不用设置路径。环境配置好后重启一波就能创建工程了
我找的一个脚本
@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!!!
- 再然后就是进目录打开VS工程。
- 巨坑马上就来了。
首先, 添加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
VS中在libluacocos2d目录里面建立对应的链接器(文件夹),把他们包含进来,
/bitop /lpack /lpeg /sproto 这4个。开始编译。。。。麻吉报错
错误(活动) 未定义标识符 "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 }
};
- 继续编译 报错
LNK2019 无法解析的外部符号 _luaL_setfuncs
真香分析后发现,这个是5.2的API,在lsprotol.c中,将
这么一改就行。。。本来就是要用LUAJIT的。
//#ifndef luaL_newlib /* using LuaJIT */
#ifdef luaL_newlib /* using LuaJIT */
理论上来5.1的lua就支持5.2的一些用法了。
- 把他的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的更多相关文章
- cocos2d-x 3.0rc开发指南:Windows下Android环境搭建
安装工具 1. 配置JDK JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 本人的系统是Win7 ...
- [转帖]cocos2d-x 3.0rc开发指南:Windows下Android环境搭建
原文请看:http://blog.csdn.net/linzhengqun/article/details/21663341 鲜红字体请注意:文中红色字体乃是本文博主阳光下的蒲公英添加.红色字体部分造 ...
- 在windows下用cygwin和eclipse搭建cocos2dx的android开发环境
在windows下用cygwin和eclipse搭建cocos2dx(2.1.4)的android开发环境,2013-8-1更新. 一.准备工作 需要下载和安装以下内容,请根据自己的操作系统选择x86 ...
- 学习笔记——Windows下cocos2d-x,eclipse中自编译
cocos2d-x创建的安卓项目导入eclipse后. 在项目属性中配置Builders. 在eclipse编译还需要配置相应的变量,即后面提到的cygwin编译中要添加的变量. D:/cygdriv ...
- Windows下快速建立cocos2d-x项目
准备工作 1.根据当前系统版本,下载对应版本的Python 32位下载地址:http://www.python.org/ftp/python/2.7.5/python-2.7. ...
- [游戏开发日志]Windows下Cocos2d-x 3.14环境搭建
总介绍 我们小组使用的是cocos2d-x的游戏开发引擎,因此在所有开发工作之前,我们需要对这个引擎进行环境的搭建. 搭建过程 VS2013的下载和安装 VS只是作为一个开发环境而已,简单来说就是敲代 ...
- Windows下Codeblocks调试Cocos2d-x项目体验(一次失败的体验)
很久之前的一篇文章有介绍过在Ubuntu下安装Cocos2d-x3.11并使用Codeblock调试Cocos2d-x程序:http://www.cnblogs.com/moonlightpoet/p ...
- Lua + win 10 + vs2017的运行环境和创建cocos2dx 3.17的lua项目(亲测)
转:https://blog.csdn.net/maoye198602102339/article/details/82047920 不管用什么引擎写游戏,脚本语言是少不了要接触的! 首先,我说的 ...
- 原创 C++应用程序在Windows下的编译、链接:第三部分 静态链接(二)
3.5.2动态链接库的创建 3.5.2.1动态链接库的创建流程 动态链接库的创建流程如下图所示: 在系统设计阶段,主要的设计内容包括:类结构的设计以及功能类之间的关系,动态链接库的接口.在动态链接库中 ...
随机推荐
- saltstack--关于报错“UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 6: ordinal not in range(128)”
[root@linux-node1 桌面]# salt-key [ERROR ] 'ascii' codec can't decode byte 0xe6 in position 6: ordinal ...
- ReactNative: 使用View组件创建九宫格
一.简言 初学RN,一切皆新.View组件跟我们iOS中UIView类似,作为一个容器视图使用,它主要负责承载其他的子组件.View组件采用的是FlexBox伸缩盒子布局,通过对它的布局可以影响子组件 ...
- Python必备收藏!博士大佬总结的Pycharm 常用快捷键思维导图
搜索 Ctrl + Shift + F7用法高亮显示 Ctrl + Alt + F7显示用法 编辑 Ctrl + Shift + V从最近的缓冲区粘贴 Ctrl + D复制选定的区域或行到后面 ...
- 07-Django模板(1)
模板介绍 作为web框架,Django提供了模板,用于编写html代码(嵌入模板代码,更快更方便的完成页面开发,在通过视图中渲染模板,将最终生成的页面返回给浏览器(客户端)).模板是关于外表的渲染的, ...
- 前端框架Easyui学习积累
前端框架Easyui学习积累 1.easyui textbox 赋值:$("#id").textbox("setValue","xx"); ...
- 黄聪:PHP转换网址相对路径到绝对路径的一种方法
相信很多程序(尤其是采集类的程序)都会有需要把网址的相对路径转换成绝对路径的需要,例如采集到某页面的HTML代码中包含资源文件经常会看到这样的文件名: <link rel="style ...
- mysql Hash索引和BTree索引区别
Hash仅支持=.>.>=.<.<=.between.BTree可以支持like模糊查询 索引是帮助mysql获取数据的数据结构.最常见的索引是Btree索引和Hash索引. ...
- 安装Goland开发工具
安装Goland开发工具 开发工具: 文本类的编辑器:记事本,notepad,sublime text,atom... 通过命令执行程序 IED:集成开发环境(integrated develop ...
- Android Studio 提高开发效率的插件
好久没有更新博客了,最近搞个listview搞得半死不活的,心累~~ 今天带来的是Android Studio插件的整理,全是我已经安装使用的,写这篇博文的目的也是因为我怕我自己给忘记怎么用(尴尬) ...
- 程序员的自我修养系列(一):优雅的代码管理工具之GitHub
1.导言 代码管理是程序员经常遇到一个问题,很多童鞋将代码保存到本地硬盘,此种方法管理混乱,也存在代码丢失的风险,且版本无法控制,因此养成良好的代码管理习惯是程序员的必修课.在众多代码管理工具中笔者在 ...