Centos环境下部署游戏服务器-Eclipse
一直在想这篇文章该不该写,因为这篇文章更像是教你如何使用一个ide这种文章,毫无价值可言。但思来想去还是应给写。上篇文章主要说了编译原理和过程,这篇文章就是理论联系实际的典范。并且很多工程师一辈子都不会有这样的经历,写下这篇文章,对那些刚刚接触到Linux,用eclipse编程的人是有一定帮助的。并且对如何把Visual Studio 工程转移到Linux下编译是有一定参考价值的。
1、Debug 和 Release
在Visual Studio里直接在编译选项里就可以转换编译模式了,其实本质区别就是上一篇文章里涉及到的gcc配置不一样。Debug模式生成的可执行文件是带有调试信息文件,所以你可以在调试的时候和源码同步调试。而Release模式生成的可执行文件不会生成调试文件,并且代码是经过编译器优化的,代码已经是被修改过的。生成的运行速度和大小是有明显区别的。我所在的项目可执行文件在Release模式下小了一半,启动速度加快了三分之二。这个是生成文件的区别,但是观察gcc其它参数,还可以配置其它信息,比如说可以添加编译时的符号,可以配置Debug和Release引用不同库文件。在Linux版的eclipse下没有默认的Debug和Release配置,需要自己手动写配置。我下载的最新mac版是可以直接选择的。
图一
2、MakeFile
由于工程是从Visual Studio工程移植过来的,所以需要设置自动生成makefile。makefile其实就是编译规则,这个也是可以单独写一篇文章的,这里先不说了。
图二
3、Include
程序编译的时候去查找头文件的地方,在选择添加到目录的时候一定要选择所有语言,因为C++里很有可能用到了C语言的特性,也可以直接添加汇编语言。
图三
由于工程项目里有很多目录,所以必须手动添加头文件查找目录,这个时候有个技巧,就是打开vs的项目工程文件,配合vim很容易导出eclipse需要包含文件配置。如果不知道eclipse配置文件格式,可以先在eclipse里添加一个配置文件,然后在导出。这样就知道eclipse配置格式了,观察发现eclipse头文件写在三处。还有symbols,都可以在配置里直接配置。
4、Symbols
gcc里的-D选项,就是自定义宏,这个的用处很多,比如你Linux和Windows网络库不是一套代码,你可以在调用位置,用宏隔开,在编译windows的时候定义WINDOWS宏,编译LINUX的时候定义LINUX宏,调试模式加DEBUG宏,不想调试模式添加NDEBUG。
图四
5、Libraries 和 Library path
Library path很好理解,就是去对应的目录查找对应的库文件,Libraries这个比较特殊,在windows下你写什么名字,在编译过程中就去对应目录查找,但在Linux下Libraries对应Gcc里的-l 选项,在加载对应库文件(so, a)都是在选项前面加lib在结尾加.a,比如工程依赖一个库文件libpthread.a那我需要写成pthread就可以,这样在链接库文件的时候才可以找到。
图五
6、Source Location
这个功能用来定位源码位置的,默认情况下工程生成makefile是查找所有工程下的cc文件生成makefile,如果引用外部文件就需要在这里添加,并且还提供筛选功能,比如你引用外部一些文件,需要排除出去,这时候就可以用filter功能。
图六
本文完,这下我和我的小伙伴们再也不用害怕这些看起来很复杂,功能巨无霸的IDE了, 其实他们只不过是给大家提供了可视化操作的页面,让大家更加高效便捷的去完成事情。如果对它地层所涉及的知识不清楚,用工具只能带来更多困扰。如果对背后运行的原理和技术很熟悉的话,不管IDE如何变化,都要遵循这些原理,不管操作系统如何变化,整个计算机理论知识暂时是不会被颠覆的,所以说在学习的时候一定要知其所以然,这样才能走的更远。
Centos环境下部署游戏服务器-Eclipse的更多相关文章
- Centos环境下部署游戏服务器-软件安装
这篇文章主要介绍一下游戏服务器需要安装的软件和需要修改的配置.现介绍下项目,本项目服务器端是c++ + mysql组合,客户端是as写的,需要安装的服务为Mysql,Php,Apache, 以及一个n ...
- Centos环境下部署游戏服务器-常用命令
图1 在Linux的世界,如果你不玩命令,那你见了同行都不好意思和人家打招呼.同时服务器正常状况下放在远端,一般都是开ssh登录服务器,相信远程桌面的人很少见吧.这篇文章说说Linu ...
- Centos环境下部署游戏服务器-自动化
计算机是没有智力的,只会接受指令,运行指令,得出结果.因此就算你让它重复做一件事多少次,它也学不会自动去做这件事.对于重复繁琐的事情,做为一个懒惰的程序员,必须告诉机器去做这件事情,然后就行了,而不是 ...
- Centos环境下部署游戏服务器-编译
游戏服务器是在windows环境开发的,相关跨平台的东西在这里不谈了,只谈如何将Visual Studio 工程转换到Linux下编译.这里涉及到的软件分别为:Centos版本为6.4,Visual ...
- Centos环境下部署游戏服务器-权限
部署Web服务器的时候,在"DocumentRoot"指向的根目录新建一个文件夹,然后将网页和资源放在这个文件夹里,通过地址http://192.168.0.100/Res/ind ...
- Centos环境下部署游戏服务器-简介
一.前言 在接触这个操作系统之前我一直使用的是ubuntu和mac os,这次由于游戏是测试版本,没有专业的运维人员去做这件事情,只能我这个稍微懂一点linux的人来做这件事情了.由于涉及到 ...
- Centos环境下部署游戏服务器-iptables
简介: 图1 Centos做为服务器级操作系统,防火墙是不可缺少的.防火墙的主要功能为控制进出网络包,防火墙就如小区门卫的工作职责,检查出入小区居民的身份,如果不符合小区门卫管理条例 ...
- Centos环境下部署游戏服务器-SVN
版本控制工具的文章已经被写滥了,所以本篇文章不想介绍如何安装Svn如何可视化操作这些东西.本篇文章讲述我自己对Svn的理解,以及在命令行下操作.为啥不应可视化界面?有两方面的原因,远程登录到服务器都是 ...
- Centos环境下部署游戏服务器-SSH
在这个*nix大行其道的年代,SSH绝对值得你拥有,虽说它的语法真的很简单,可用途相当大.比如说你在登山,突然公司一个电话告诉你服务器出问题了,在登山的过程中,肯定不能背个几公斤的笔记本吧,这个时候只 ...
随机推荐
- < java.util >-- List接口
List本身是Collection接口的子接口,具备了Collection的所有方法.现在学习List体系特有的共性方法,查阅方法发现List的特有方法都有索引,这是该集合最大的特点. List:有序 ...
- Java Day 07
构造函数 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用:给对象初始化值 默认构造函数 如果没有自己定义构造函数,系统会自动生成: 如果定义了,则默认构造函数不会自动生成. 构造函数与一 ...
- P1697: [Usaco2007 Feb]Cow Sorting牛排序
这是一道置换群的裸题=-=,先拿来试试手对着打,以后应该会更加熟练吧! ; var n,i,j,maxx,minx,now,len,cursum,tmin,sum:longint; p:array[. ...
- Notes of the scrum meeting(12.8)
meeting time:18:00~18:30p.m.,December 8th,2013 meeting place:20号公寓前 attendees: 顾育豪 ...
- 集成Spring后HibernateTemplate实现分页
spring 整合 hibernate 时候用的 HibernateTemplate 不支持分页,因此需要自己包装一个类进行分页,具体实现如下...使用spring的hibernateTemplate ...
- 学习笔记--HashMap浅析
HashMap 实现了Map 接口,其底层以一个线性数组保存哈希表,所以它既有数组查询的高效,也有哈希存取的方便. HashMap提供了默认构造器,和有参构造器,在有参构造器中,提供了两个参数,可以对 ...
- SQL SERVER中查询无主键的SQL
--生成表 IF EXISTS ( SELECT name FROM sysobjects WHERE xtype = 'u' ...
- Java 7 中 NIO.2 的使用——文件递归操作
众所周知,递归编程是一项有争议的技术,因为它需要大量的内存,但是它能简化一些编程任务.基本上,一个递归操作都是程序调用自己传递参数修改的值或者参数传递到当前的程序循环中.递归编程通常用来计算阶乘斐波那 ...
- JS 学习笔记--9---变量-作用域-内存相关
JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...
- JS 学习笔记--4---运算符
1.JS 中包含的运算符有:一元运算符.二元运算符.三元运算符.算术运算符.关系运算符.逻辑运算符.位运算符.赋值运算符.其他的运算符等. 2.表达式:简单来讲就是一句代码(分号隔开),解释器会把它翻 ...