一直在想这篇文章该不该写,因为这篇文章更像是教你如何使用一个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. 自定义debug信息

    #ifdef  DEBUG  #define debug(fmt,args...)  printk(fmt ,##args)  #define debugX(level,fmt,args...) if ...

  2. 典型用户 persona

    persona 典型用户 1.姓名:王涛 2.年龄:22 3.收入:基本无收入 4.代表用户在市场上的比例和重要性:王涛为铁道学生.本软件的用户主要是学生和老师,尤其是广大的铁大学子,所以此典型用户的 ...

  3. 9、android开发之java.lang.verifyError(转载)

    原文链接: http://www.linuxidc.com/Linux/2012-08/67289.htm 解决方案: 最近在做一个Android开发小项目的时候,遇到java.lang.verify ...

  4. ThinkDev.Logging-Queue模块介绍

    Queue,ThinkDev.Logging对内存级队列的封装. 主要针对需要简单进程内内存级队列提供支持,应用无需关心存储及线程. 配置例子: <!-- 队列对象 --> <Que ...

  5. django-CSRF verification failed. Request aborted

    现象: 解决办法1: 在view.py文件中设置如下: from django.views.decorators.csrf import csrf_exempt @csrf_exempt #再写下面的 ...

  6. eclipse部署Tomcat6 : The server does not support version 3.0 of the JEE Web module specification

    为项目添加tomcat 6,发现不能添加,原因如下 这是因为Tomcat6不能为JavaEE3.0版本服务,把项目的版本降低到2.5就可以了 现在可以部署了

  7. bzoj 2697 贪心

    就贪心就行了,首先可以看成n个格子,放物品,那么 一个物品假设放3个,放在1,k,n处,那么价值和放在1,n 是一样的,所以一个物品只放两个就行了,价值大的应该尽量放 在两边,那么排序之后模拟就行了 ...

  8. zoj 2314 Reactor Cooling 网络流

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1314 The terrorist group leaded by a ...

  9. 树链剖分入门-Hdu3966 Aragorn's Story

    AC通道:http://acm.hdu.edu.cn/showproblem.php?pid=3966 [题目大意] 一棵树上每个点有权值,每次支持三种操作:给[a,b]路径上的所有节点的权值加上k, ...

  10. Poj 1222 EXTENDED LIGHTS OUT

    题目大意:给你一个5*6的格子,每个格子中有灯(亮着1,暗着0),每次你可以把一个暗的点亮(或者亮的熄灭)然后它上下左右的灯也会跟着变化.最后让你把所有的灯熄灭,问你应该改变哪些灯. 首先我们可以发现 ...