plain framework 1 一款主要用于网络(游戏)开发的C/C++开源框架 安装篇 updated
上次介绍了一下plain framework的基础相关资料,今天该框架正式开源发布。项目的地址托管于github上,我相信大多数朋友都应该知道。今天要介绍的是该框架的目录基本结构,以及分别在linux以及windows平台上安装的例子。为了让初学或者技术不是太扎实的朋友也能快速上手,我在这里一步步从开发环境的搭建讲述到第一个比较完整的示例(网关服务器),每一步都是今日从空白的系统开始及时操作,由简入深,如果大家不太明白请到交流群询问。
更新日志
2015年1月10日 更新lnmp安装脚本,兼容最新centos7以上系统,原网盘地址
源码地址
https://github.com/viticm/plainframework1
目录结构
框架基本介绍
地址:http://www.cnblogs.com/lianyue/p/3972492.html
参考手册
参考手册正在编写过程中,会第一时间先同步到博客上,由于这些文章可能上不了首页,感兴趣的朋友不妨关注博客。
持续更新
如果框架发现了新的BUG或者有内容更新,将会持续同步到github项目上。
LINUX INSTALL
本次选用的linux系统为centos(6.5),你可以尝试其他linux系统也可。安装好linux系统,或者已经存在linux系统的情况下,那么我们开始搭建lnmp环境(web开发环境)。你可以在网络上去寻找相关的资料,或者使用我提供的脚本进行安装,不过php版本最好为5.4以上版本,这是为以后扩展预留。
首先你要确保你的系统中安装了git,如果没有安装请用以下命令安装(需联网):
yum -y install git
其次将框架源码安装到你的开发目录中,如:
cd ~ && mkdir work #进入用户主目录,并创建工作目录
cd work && git clone https://github.com/viticm/plainframework1
1、使用框架内的脚本进行在线安装(必须使用root权限安装)
cd plainframework1/tools/script/linux/install/ && sudo sh install_web_develop.sh
2、使用提供的离线包及脚本进行离线安装(必须使用root权限,没有网络的需注意以下说明)
可以到百度云盘去取该离线安装包链接:http://pan.baidu.com/s/1pJwnHn9 密码:sa9h
将包放到/web目录下并解压,命令如下:
mkdir -p /web && cd /web && tar -xjvf web.tar.bz2
如果没有网络的情况下,你保证了安装gcc、g++、cmake等必要的工具之后,设置脚本install_web_develop.sh的cDownload=on参数为off。
运行脚本进行安装(大约30~50分钟):
sh install_web_develop.sh #运行脚本
安装成功截图:
安装成功后,再安装框架的开发环境(使用root安装):
cd tools/script/linux/install/ && sh install_environment.sh --full
开发环境成功截图:
创建用户数据库(网关服务器用):
cd ~/work/plainframework1/tools/script/sql/ #进入脚本目录
mysql -uroot -pmysql #进入mysql命令行 mysql> CREATE DATABASE sword_user DEFAULT CHARSET UTF8; //创建数据库 mysql> source sword_user.sql; //执行脚本
配置数据源:
vim /etc/odbc.ini #编辑配置文件
最终的配置如下,其实可以不更改:
[sword_user]
Driver = /usr/local/lib/mysqlodbc/libmyodbc5a.so
DATABASE = sword_user
DESCRIPTION = MySQL ODBC 5.3 Ansi Driver test
SERVER = localhost
UID = root
PASSWORD =
SOCKET = [sword_character]
Driver = /usr/local/lib/mysqlodbc/libmyodbc5a.so
DATABASE = sword_character
DESCRIPTION = MySQL ODBC 5.3 Ansi Driver test
SERVER = localhost
UID = root
PASSWORD =
SOCKET =
编译框架
框架使用了cmake等工具编译,如果你使用了我提供的脚本那么编译环境可以不用自己配置。
1、编译依赖
cd ~/work/plainframework1/pf/dependencies/lua/ #lua
cmake ./
make
cd ~/work/plainframework1/pf/dependencies/iconv/ #iconv
cmake ./
make
2、编译框架核心
cd ~/work/plainframework1/pf/core/
cmake ./
make
编译完整示例
完整示例中提供了一个网关服务器,其中用到了网络、数据库等核心接口。
cd ~/work/plainframework1/applications/gateway/
cmake ./
make
运行示例
1、拷贝运行库
cd ~/work/plainframework1/applications/bin/
cp ~/work/plainframework1/pf/dependencies/dll/lib*.so ./
cp ~/work/plainframework1/pf/core/dll/libpf_core.so ./
2、配置文件
cd ~/work/plainframework1/applications/bin/
vim config/gateway_info.ini
[System]
DBIP=localhost
DBPort=3306
DBConnectionOrDBName=sword_user; 连接或数据库名称
DBUser=root
DBPassword=mysql
DBConnectorType=0; 连接类型 0 odbc, 1 mysql, 2 sqlserver, 3 mongodb(现在只实现了ODBC)
EncryptDBPassword=0; 是否加密了数据库密码
NetListenIP=127.0.0.1; 网络监听IP
NetListenPort=12680; 网络监听端口
NetConnectionMax=10240; 最大支持的网络连接数量
3、运行
cd ~/work/plainframework1/applications/bin/
./gateway
RESULT:
WINDOWS INSTALL
在windows上安装开发环境就相对比较容易了,因为不是使用源码编译安装的。我在这里使用的是wamp作为web开发环境,而odbc则是使用系统自带的odbc32位,如果你的机器不是64位的则没有关系。如果你想将框架和应用编译为64位则使用64位的ODBC,至于原因我就不解释了。
源码下载
如果用github朋友比较多的可以使用github的客户端,打开源码连接后:
PHP环境变量设置
将PHP的执行文件的路径设置到你的环境变量中,为了运行框架中的一些脚本,比较重要。
编译框架
由于vs编译时对重复的文件名则不能正确的链接到目标中,而框架中则存在了许多重复的文件名,所以这里使用到了为windows编译的工具。
路径: tools\script\bat\rename_forvsbuild.bat
双击打开,然后输入选项如下:
回车等待工具执行完成:
进入pf\core\scripts打开工程pf_core.vc9.sln进行编译(目前只支持release编译),当然你可以将此工程转换为vs的其他版本。
编译例子
同编译框架一样,例子的编译也需要重写项目文件。
打开tools\script\bat\rename_forvsbuild.bat
revert to standard是否还原为标准的,不用输入,直接回车,第二次执行该操作时工程将自动还原。
打开工程文件applications\gateway\scripts\gateway.vc9.sln进行编译。
安装mysql的odbc driver
地址为:http://dev.mysql.com/downloads/connector/odbc/ 版本3.5以上的即可
创建数据库
创建名为sword_user的数据库,编码设置为odbc,并在该数据库下执行脚本tools\script\sql\sword_user.sql。
配置ODBC
由于我使用的是32位的应用,所以使用32位的ODBC,如图:
添加你的mysql连接信息如下,连接名为sword_user:
运行示例
拷贝依赖和框架的动态库到applications\bin目录下。
依赖动态库:pf\dependencies\dll\Release
框架动态库:pf\core\dll\Release
保证mysql和数据库成功的前提下运行gateway.exe
RESULT
成员招募(长期有效)
如果你也对开源知识比较感兴趣,如果也对网络应用或者网络游戏感兴趣,如果你也对该框架感兴趣,你可以加入我们的QQ群(348477824)。
欢迎大家进群相互交流学习,同时也欢迎各位朋友对该框架供出自己的一份心力。
plain framework 1 一款主要用于网络(游戏)开发的C/C++开源框架 安装篇 updated的更多相关文章
- plain framework 1(简约框架)一款主要用于网络(游戏)开发的C/C++框架 即将开源发布
在我们的日常开发中,我们往往会遇到这种情况,当我们换了一个开发环境时很可能会重新利用一套新的框架进行开发.由于不同框架有着不同的接口,所以我们不得不花时间再次熟悉这些接口,这将造成开发时间上的重复,而 ...
- [转]六款值得推荐的android(安卓)开源框架简介
本文转自:http://www.jb51.net/article/51052.htm .volley 项目地址 https://github.com/smanikandan14/Volley-demo ...
- 六款值得推荐的android(安卓)开源框架简介(转)
1.volley 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载: (2) 网络请求的排序(scheduli ...
- 几款值得推荐的android(安卓)开源框架简介
技术不再多,知道一些常用的.不错的就够了. 该文章自有需要的时候,mark一下. 顺序不代表排名,根据自己需求进行选择即可. 1.volley 项目地址 https://github.com/sman ...
- 六款值得推荐的android(安卓)开源框架简介
1.volley 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载: (2) 网络请求的排序(scheduli ...
- 六款值得推荐的android(安卓)开源框架
1.volley 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载: (2) 网络请求的排序(scheduli ...
- 六款值得推荐的android(安卓)开源框架简介【转】
http://my.oschina.net/u/1244156/blog/380647 1.volley 项目地址 https://github.com/smanikandan14/Volley-de ...
- cocos2d-x游戏开发(一)之环境搭建篇
前言 进入研究生生涯已经有一段时间,感觉却没做些什么,实验室虽有一个很大的国家项目,但考虑到它这么的单一,总想利用业余时间做些什么,拓宽一下自己的知识面. 偶然机会,了解到cocos这个东东,恰好,实 ...
- [Python3网络爬虫开发实战] 1.8.1-pyspider的安装
pyspider是国人binux编写的强大的网络爬虫框架,它带有强大的WebUI.脚本编辑器.任务监控器.项目管理器以及结果处理器,同时支持多种数据库后端.多种消息队列,另外还支持JavaScript ...
随机推荐
- 03.Web大前端时代之:HTML5+CSS3入门系列~H5功能元素
Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 2.功能元素 1.hgroup 对网页或区段(secti ...
- 【.NET深呼吸】如何反序列化动态JSON
.net本身除了支持SOAP.XML.二进制等序列化和反序列化,后来也加入了对JSON的序列化的支持.然而,在实际开发中,常常会遇到结构不确定的JSON对象,这些对象可能是其他代码动态生成的,你事先无 ...
- 引用MVC源码的小问题
vs2010自己创建的MVC项目,排除掉System.Web.Mvc引用后,引用源码,直接运行会提示引用冲突,这个是因为配置文件的问题,只要把配置文件中assemblies节点下的 <add a ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(46)-工作流设计-设计分支
系列目录 步骤设置完毕之后,就要设置好流转了,比如财务申请大于50000元(请假天数>5天)要总经理审批,否则财务审批之后就结束了. 设置分支没有任何关注点,我们把关注点都放在了用户的起草表单. ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(61)-如何使用框架来开发
系列目录 前言: 有些园友经常问如何正确快速开发,但是我告诉你没有什么帮助文档比自己动手做更加实在,不用代码生成器 这一节专门抽了些时间来非常非常详细演示这个框架的数据流,废话不多说,现在开始!下面看 ...
- BIRCH聚类算法原理
在K-Means聚类算法原理中,我们讲到了K-Means和Mini Batch K-Means的聚类原理.这里我们再来看看另外一种常见的聚类算法BIRCH.BIRCH算法比较适合于数据量大,类别数K也 ...
- JVM学习(4)——全面总结Java的GC算法和回收机制
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: 一些JVM的跟踪参数的设置 Java堆的分配参数 -Xmx 和 –Xms 应该保持一个什么关系,可以让系统的 ...
- 安装MYSQL详细教程 版本:mysql-installer-community-5.7.16.0 免安装版本和安装版本出现错误的解决
一.版本的选择 之前安装的Mysql,现在才来总结,好像有点晚,后台换系统了,现在从新装上Mysql,感觉好多坑,我是来踩坑,大家看到坑就别跳了,这样可以省点安装时间,这个折腾了两天,安装了好多个版本 ...
- Linq查询基本操作
摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 ...
- 2.EF中 Code-First 方式的数据库迁移
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/code-first-migrations-with-entity-framework/ 系列目 ...