一直在想这篇文章该不该写,因为这篇文章更像是教你如何使用一个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的更多相关文章

  1. Centos环境下部署游戏服务器-软件安装

    这篇文章主要介绍一下游戏服务器需要安装的软件和需要修改的配置.现介绍下项目,本项目服务器端是c++ + mysql组合,客户端是as写的,需要安装的服务为Mysql,Php,Apache, 以及一个n ...

  2. Centos环境下部署游戏服务器-常用命令

         图1     在Linux的世界,如果你不玩命令,那你见了同行都不好意思和人家打招呼.同时服务器正常状况下放在远端,一般都是开ssh登录服务器,相信远程桌面的人很少见吧.这篇文章说说Linu ...

  3. Centos环境下部署游戏服务器-自动化

    计算机是没有智力的,只会接受指令,运行指令,得出结果.因此就算你让它重复做一件事多少次,它也学不会自动去做这件事.对于重复繁琐的事情,做为一个懒惰的程序员,必须告诉机器去做这件事情,然后就行了,而不是 ...

  4. Centos环境下部署游戏服务器-编译

    游戏服务器是在windows环境开发的,相关跨平台的东西在这里不谈了,只谈如何将Visual Studio 工程转换到Linux下编译.这里涉及到的软件分别为:Centos版本为6.4,Visual ...

  5. Centos环境下部署游戏服务器-权限

    部署Web服务器的时候,在"DocumentRoot"指向的根目录新建一个文件夹,然后将网页和资源放在这个文件夹里,通过地址http://192.168.0.100/Res/ind ...

  6. Centos环境下部署游戏服务器-简介

    一.前言      在接触这个操作系统之前我一直使用的是ubuntu和mac os,这次由于游戏是测试版本,没有专业的运维人员去做这件事情,只能我这个稍微懂一点linux的人来做这件事情了.由于涉及到 ...

  7. Centos环境下部署游戏服务器-iptables

    简介:   图1        Centos做为服务器级操作系统,防火墙是不可缺少的.防火墙的主要功能为控制进出网络包,防火墙就如小区门卫的工作职责,检查出入小区居民的身份,如果不符合小区门卫管理条例 ...

  8. Centos环境下部署游戏服务器-SVN

    版本控制工具的文章已经被写滥了,所以本篇文章不想介绍如何安装Svn如何可视化操作这些东西.本篇文章讲述我自己对Svn的理解,以及在命令行下操作.为啥不应可视化界面?有两方面的原因,远程登录到服务器都是 ...

  9. Centos环境下部署游戏服务器-SSH

    在这个*nix大行其道的年代,SSH绝对值得你拥有,虽说它的语法真的很简单,可用途相当大.比如说你在登山,突然公司一个电话告诉你服务器出问题了,在登山的过程中,肯定不能背个几公斤的笔记本吧,这个时候只 ...

随机推荐

  1. < java.lang >-- String字符串

    java中用String类进行描述.对字符串进行了对象的封装.这样的好处是可以对字符串这种常见数据进行方便的操作.对象封装后,可以定义N多属性和行为. 如何定义字符串对象呢?String s = &q ...

  2. vc++编程之在程序中加入网址链接

    在vc++对话框编程中,我们处于某种需要(介绍自己的软件或者自己的博客)可以在对话框上增加一个网址链接,用户只要一点击,就进入了相应的网页,我在此演示下如何完成. 1 打开编译器,我们新建一个基于对话 ...

  3. android selector

    android 选择器的使用 1.在drawable文件夹下面建一个xml文件,如item.xml,在eclipse中有selector这个选项 2.可以在布局文件.xml(配置android:lis ...

  4. mongodb修改器

    mongodb修改器 转载自:http://blog.csdn.net/mcpang/article/details/7752736 mongodb修改器(\(inc/\)set/\(unset/\) ...

  5. 你所必须掌握的三种异步编程方法callbacks,listeners,promise

    目录: 前言 Callbacks Listeners Promise 前言 coder都知道,javascript语言运行环境是单线程的,这意味着任何两行代码都不能同时运行.多任务同时进行时,实质上形 ...

  6. 面向对象版js分页

    基于前一个js分页,我将代码改成一个面向对象版的js分页,代码如下 http://peng666.github.io/blogs/pageobj <!DOCTYPE html> <h ...

  7. NSIS中判断.net framework 是否安装

    在网上找了几个脚本,原理都是读取注册表进行判断,都可以用. 1.CheckDotNetFramework /* * Name: CheckDotNetFramework.nsh * Version: ...

  8. 浅谈GitHub

    Git 是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub. Gith是一个基于 git 的社会化代码分享社区,所谓 social coding.你 ...

  9. 【POJ】【2601】Simple calculations

    推公式/二分法 好题! 题解:http://blog.csdn.net/zck921031/article/details/7690288 这题明显是一个方程组……可以推公式推出来…… 然而这太繁琐了 ...

  10. 【BZOJ】【3207】花神的嘲讽计划 I

    字符串Hash+可持久化线段树 好神奇的转化…… 蒟蒻一开始还去想AC自动机去了……然而由于a[i]的范围是小于等于n,怎么也想不出一个时间复杂度合理的方法 膜拜了题解0.0原来是字符串Hash! 首 ...