项目引入lua
来源:互联网 发布:js随机数1到10且不重复 编辑:程序博客网 时间:2024/06/15 19:33
2017/09/23
这周 lua luna 编译成dll 供gameserver使用
寻宝使用经验丹部分 lua实现,
1 用数据库字段控制 是否重新加载lua代码
2 lua main里面存lua里面的所有模块 全局的 供不同的部分 调用
3 luaconst里面存 c++里面的常量 或者一些公共指针
4 c++调lua通过lua_call_table_function
5 lua里面调c++通过 传进去的变量 可以是指针 调用c++中已经声明给lua的方法
6 配置文件cfg读取通过lua读 可以随时更改随时读
7 lua path第一次添加一次后面不加 通过判断模块是否nil
8 gmatch匹配解析文件
9 :参数比.要多一个
10 tonumber string-int table.insert如果表为空会失败
11 __gc(){} 需要写 不要让lua清理 内存管理还是c++来做
现在问题是项目太大 如何有效合理的移植c++到lua 只能先部分 以后的部分用lua写 之前的先不动
lua的垃圾回收
collectgarbage collect 收集一次,count 查看现在有多少内存占用
可以看到所有local的变量或者表,都会在执行collect前后 消失
但是未声明为local的则没有,
需要在收集之前将非local的表置为nil 然后调用collect的话,内存就回收了
lua自己会定期调用collect的,我们不必手动调用 注意非local置nil就行了
2017/09/27
1 lua5.3.4编译的时候需要readline/readline.h yum下不下来 直接从网页下载rpm 然后rpm安装就ok了 得到lua luac liblua.a
2 /root/lua-5.3.4/src/ 这是我的目录lua的目录
3 luna 这是一个c++ 类函数等 导出lua的一个第三方工具, 感谢luna作者
https://github.com/trumanzhao/luna
这是一篇相关的文章,
http://blog.csdn.net/lalate/article/details/51498869
4 luna里面是cmakelists.txt, 提供了跨平台编译,需要cmake,我之前没有装,
因为是内网机,yum用不了,wget也用不了,需要手动下cmake-3.2.2.tar.gz然后拖进去安装
5 luna支持两个版本 c++11 c++14 ,我选择11,但是之前的编译器还不支持 编译luna的时候出现compiler not support c++11
2017/09/28
1 gcc4.8.2 支持c++11 先安装mpc gmp mpfr然后才能安装gcc
2 /usr/bin gcc g++ c++都软链到新的 /usr/local/bin下面的 gcc g++ c++ which --version
3 编译选项 需要加上 -std=c++11-fpermissive(命名空间配合 使用luna报很多警告)
4 LFLAGS -L/root/luna-master/build -lluna 动态库
5 LLIB -L/root/lua-5.3.4/src -llua 静态库
2017/09/28
1 strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX查看glibcxx版本
2 glibcxx 之前的软链删掉 链到最新的
2 gcc升级了 gdb也要升级 否则无法gdb调试
3 动态库要放到/usr/lib64下面 默认位置 否则会报找不到动态库
4 我在一台机器上面是作为编译环境的,另一台服务器上 只放可执行文件以及动态库so,
5 makefile
这周 lua luna 编译成dll 供gameserver使用
寻宝使用经验丹部分 lua实现,
1 用数据库字段控制 是否重新加载lua代码
2 lua main里面存lua里面的所有模块 全局的 供不同的部分 调用
3 luaconst里面存 c++里面的常量 或者一些公共指针
4 c++调lua通过lua_call_table_function
5 lua里面调c++通过 传进去的变量 可以是指针 调用c++中已经声明给lua的方法
6 配置文件cfg读取通过lua读 可以随时更改随时读
7 lua path第一次添加一次后面不加 通过判断模块是否nil
8 gmatch匹配解析文件
9 :参数比.要多一个
10 tonumber string-int table.insert如果表为空会失败
11 __gc(){} 需要写 不要让lua清理 内存管理还是c++来做
现在问题是项目太大 如何有效合理的移植c++到lua 只能先部分 以后的部分用lua写 之前的先不动
lua的垃圾回收
collectgarbage collect 收集一次,count 查看现在有多少内存占用
可以看到所有local的变量或者表,都会在执行collect前后 消失
但是未声明为local的则没有,
需要在收集之前将非local的表置为nil 然后调用collect的话,内存就回收了
lua自己会定期调用collect的,我们不必手动调用 注意非local置nil就行了
2017/09/27
1 lua5.3.4编译的时候需要readline/readline.h yum下不下来 直接从网页下载rpm 然后rpm安装就ok了 得到lua luac liblua.a
2 /root/lua-5.3.4/src/ 这是我的目录lua的目录
3 luna 这是一个c++ 类函数等 导出lua的一个第三方工具, 感谢luna作者
https://github.com/trumanzhao/luna
这是一篇相关的文章,
http://blog.csdn.net/lalate/article/details/51498869
4 luna里面是cmakelists.txt, 提供了跨平台编译,需要cmake,我之前没有装,
因为是内网机,yum用不了,wget也用不了,需要手动下cmake-3.2.2.tar.gz然后拖进去安装
5 luna支持两个版本 c++11 c++14 ,我选择11,但是之前的编译器还不支持 编译luna的时候出现compiler not support c++11
2017/09/28
1 gcc4.8.2 支持c++11 先安装mpc gmp mpfr然后才能安装gcc
2 /usr/bin gcc g++ c++都软链到新的 /usr/local/bin下面的 gcc g++ c++ which --version
3 编译选项 需要加上 -std=c++11-fpermissive(命名空间配合 使用luna报很多警告)
4 LFLAGS -L/root/luna-master/build -lluna 动态库
5 LLIB -L/root/lua-5.3.4/src -llua 静态库
2017/09/28
1 strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX查看glibcxx版本
2 glibcxx 之前的软链删掉 链到最新的
2 gcc升级了 gdb也要升级 否则无法gdb调试
3 动态库要放到/usr/lib64下面 默认位置 否则会报找不到动态库
4 我在一台机器上面是作为编译环境的,另一台服务器上 只放可执行文件以及动态库so,
5 makefile
阅读全文
0 0
- 项目引入lua
- 在C++项目中引入Lua(AlphaGo使用的方案)
- 如何引入项目源码
- Eclipse引入UEI项目
- 项目中引入log4j
- 项目中引入log4j
- eclipse引入maven项目
- Kotlin 引入Android项目
- 库项目引入
- 项目中引入log4j
- RabbitMQ如何引入项目?
- 项目引入冲突问题
- eclipse 项目引入关联项目
- Web项目中引入Spring
- javase项目中引入配置文件
- 从SVN引入Maven项目
- 引入library项目相关问题
- eclipse引入项目 建立路径
- html-2
- 日常笔记整理
- [linux] screen 使用摘要
- 谷歌无人车教父出席科技大会,居然“穿”了一只狗
- 外媒:从交通到医疗,科大讯飞的人工智能被5亿人使用
- 项目引入lua
- 专访微软沈向洋:下一个攻坚点是通用人工智能
- 设计模式(七)策略模式详解
- Centos7 DNS服务器搭建与配置
- 对数据集进行扰动
- NIPS 2017 腾讯AI Lab入选8篇论文,含1篇Oral
- 腾讯出了一款AI产品,早期癌症筛查准确率最高达90%
- 腾讯AI Lab NLP团队首次曝光,张潼、俞栋带队解读ACL三大前沿
- 中国近五年投资美国AI产业全景图:腾讯、创新工场最积极