腾讯C++开发方式疑问

Jindaodaxia 2011-10-04 11:41:00
听人说,腾讯的网页游戏,客户端用的Flash 脚本, 服务端用的C++,跑Linux服务器。
开发服务端程序的时候,他们是在windows 系统上用VS2005编写,GCC编译器,makefile 编译,调试和运行都是在Linux系统上。
之前接触过的Linux C++开发都是直接在Linux上用Eclipse开发,还从没弄过这种方式,不是很理解。
这个是怎么个编译法? 自己写Makefile? VC里面设置命令来编译? 编译完后复制到Linux去调试??中间怎么衔接呢??
这样做不是挺复杂的吗??有啥好处呢?
...全文
476 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
mLee79 2011-10-08
  • 打赏
  • 举报
回复
应该稍微大点的地都不管你用啥编辑器, 习惯啥就用啥, makefile 也很容易的写个通用的..
在win下编译linux代码也不麻烦, 弄个交叉编译器就是, 或者vmware上用share folder, 开个smb共享目录也行..
调试也可以直接在目标机器上跑 gdbserver , 在 win 下用gdb就可以调试了, 也不麻烦的说..
BestTim 2011-10-08
  • 打赏
  • 举报
回复
这是因为vc开发效率相对高些。另外也可以偷偷装个游戏玩玩。。。。
falcon0912 2011-10-08
  • 打赏
  • 举报
回复
咱这写代码用 Source Insight,其它和qq类似。
Roy_Smiling 2011-10-07
  • 打赏
  • 举报
回复
其实我是来打酱油的哦~
W1nds 2011-10-07
  • 打赏
  • 举报
回复
关注
用什么编译器都是浮云
景荣1 2011-10-07
  • 打赏
  • 举报
回复
说句实话,我感觉敲vim多了,会手疼,本来敲2下能解决的,有时候在vim下需要敲2+n下(模式切换+命令组合),除了敲的快点,实在感觉出来啥优势来,反正写程序吧,不是打字比赛,其实什么工具都不重要,我以前还纠结与vim还是emacs,现在想想遇到这种问题,抛银币得了,vs+va实在让我少敲了很多代码[Quote=引用 27 楼 qq120848369 的回复:]

引用 26 楼 kingstarer 的回复:

我现在的公司也是一样 在vs上写代码并编译 ftp上传上去后 在aix下调试运行

makefile写得比较通用点 大部分文件编译不需要修改makefile

其实在windows上用什么写都无所谓啦 主要是vs写起来比较方便
=================================
开发过程中尽量用标准c/c++里……
[/Quote]
qq120848369 2011-10-07
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 kingstarer 的回复:]

我现在的公司也是一样 在vs上写代码并编译 ftp上传上去后 在aix下调试运行

makefile写得比较通用点 大部分文件编译不需要修改makefile

其实在windows上用什么写都无所谓啦 主要是vs写起来比较方便
=================================
开发过程中尽量用标准c/c++里面的东西

对于那些实在没有的做一个小型的类库进……
[/Quote]

恩,我一开始也觉得vs有提示啥的方便点,写起来就快,后来发现在win下开个帮助文档摆着,把写好的文件传到win下用sourece insight开着看,然后在vim下写东西也差不多。 这样有利于我多记忆接口,又能显得我很专业(vim下写东西一看就很专业的样子),耍帅是不解释的。 再说,写代码公司又没有规定,怎么舒服怎么来的事情么。

公司里的库的确跨win和linux的,随处可以见#ifdef WIN32...#else。

条件变量,互斥锁,select/epoll调用,很常见都做了选择编译。
kingstarer 2011-10-07
  • 打赏
  • 举报
回复
我现在的公司也是一样 在vs上写代码并编译 ftp上传上去后 在aix下调试运行

makefile写得比较通用点 大部分文件编译不需要修改makefile

其实在windows上用什么写都无所谓啦 主要是vs写起来比较方便
=================================
开发过程中尽量用标准c/c++里面的东西

对于那些实在没有的做一个小型的类库进行封装 (#ifdef WIN32 ... #else ....)
景荣1 2011-10-07
  • 打赏
  • 举报
回复
恩,你说的很对,我说的逻辑测试也是为了把隐藏的bug找出来,可能我对bug调试说的太片面了(仅仅是很明显的编译错误,链接错误)等[Quote=引用 24 楼 qq120848369 的回复:]

引用 23 楼 car_mack 的回复:

说句实话,调试才占几分钟的时间,出了bug,如果对编译和链接的原理熟悉的话,很容易调试的,编译器告诉你的够详细了,我感觉花时间最多的应该是逻辑测试引用 8 楼 jindaodaxia 的回复:

引用 6 楼 quwei197874 的回复:
这样做是尽量提高开发效率

编码的效率是高些,但是调试不是更麻烦些吗?


引用 23 ……
[/Quote]
qq120848369 2011-10-07
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 car_mack 的回复:]

说句实话,调试才占几分钟的时间,出了bug,如果对编译和链接的原理熟悉的话,很容易调试的,编译器告诉你的够详细了,我感觉花时间最多的应该是逻辑测试引用 8 楼 jindaodaxia 的回复:

引用 6 楼 quwei197874 的回复:
这样做是尽量提高开发效率

编码的效率是高些,但是调试不是更麻烦些吗?
[/Quote]

[Quote=引用 23 楼 car_mack 的回复:]

说句实话,调试才占几分钟的时间,出了bug,如果对编译和链接的原理熟悉的话,很容易调试的,编译器告诉你的够详细了,我感觉花时间最多的应该是逻辑测试引用 8 楼 jindaodaxia 的回复:

引用 6 楼 quwei197874 的回复:
这样做是尽量提高开发效率

编码的效率是高些,但是调试不是更麻烦些吗?
[/Quote]

谁也不知道BUG到底出现在哪里,有些是有隐蔽性的,找不到原因调上2天才发现的人也是普遍现象。
不能说编译器告诉我们的才叫BUG,跑一遍一个模样, 跑一会挂掉的那才头疼,gdb core 得到的信息也不足以定位,只能打各种日志进行猜测。
景荣1 2011-10-07
  • 打赏
  • 举报
回复
说句实话,调试才占几分钟的时间,出了bug,如果对编译和链接的原理熟悉的话,很容易调试的,编译器告诉你的够详细了,我感觉花时间最多的应该是逻辑测试[Quote=引用 8 楼 jindaodaxia 的回复:]

引用 6 楼 quwei197874 的回复:
这样做是尽量提高开发效率

编码的效率是高些,但是调试不是更麻烦些吗?
[/Quote]
qq120848369 2011-10-07
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 car_mack 的回复:]

你可以不是很了解网络游戏开发,一款游戏如果开发4年的话,最牛的那个人会在半年之内写好网络引擎,然后剩下的其他程序员利用网络引擎上定义pdl和rpc协议,进行网络通信,然后重点写游戏逻辑,也就是很少会和底层api打交道,这时候程序员基本上就是看抽象能力,算法之类的,和系统底层api关系不大引用 20 楼 qq120848369 的回复:

你可以想想,写Linux程序是不是要经常man查查AP……
[/Quote]

额,我就没开发过。。。
景荣1 2011-10-07
  • 打赏
  • 举报
回复
你可以不是很了解网络游戏开发,一款游戏如果开发4年的话,最牛的那个人会在半年之内写好网络引擎,然后剩下的其他程序员利用网络引擎上定义pdl和rpc协议,进行网络通信,然后重点写游戏逻辑,也就是很少会和底层api打交道,这时候程序员基本上就是看抽象能力,算法之类的,和系统底层api关系不大[Quote=引用 20 楼 qq120848369 的回复:]

你可以想想,写Linux程序是不是要经常man查查API,在vim下还得先ctrl+z stop it,查完再fg回来。。如果把linux直接当做一个帮助手册,然后在win下写代码是不是就方便一些,而且想看什么文件就看什么文件。。
[/Quote]
qq120848369 2011-10-07
  • 打赏
  • 举报
回复
你可以想想,写Linux程序是不是要经常man查查API,在vim下还得先ctrl+z stop it,查完再fg回来。。如果把linux直接当做一个帮助手册,然后在win下写代码是不是就方便一些,而且想看什么文件就看什么文件。。

qq120848369 2011-10-07
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 car_mack 的回复:]

你应该不是在互动娱乐实习的吧,互娱是分研发工作室的,游戏研发的话,VS这种IDE比较适合,项目规模大了之后,容易控制引用 16 楼 qq120848369 的回复:

我在TX实习时候,周围都是直接vim下开发的,没见到你说的VS下开发再放到linux下。。最多是win下source insight看看头文件啥的加快效率。
[/Quote]

这个真不知道了,写服务端的也没必要到VS下写吧,可能是有些程序猿懒得配vim,在VS下写代码查看东西比较方便。

linux的东西再咋样也不能在windows下编译,写游戏的都是C++,写一个类就放到Linux下编译看能否编译通过,Makefile也加上相应的编译命令。

我那部门附近有用VS的,不过都是开发客户端的,我那边后台的都是vim, 没见过VS下写代码的。

不是都用secureCRT么,sz,rz命令传文件很方便的,一般脚本,Makefile都是在win下写好传上去的,dos2unix转一下换行符就直接跑了。
景荣1 2011-10-07
  • 打赏
  • 举报
回复
你应该不是在互动娱乐实习的吧,互娱是分研发工作室的,游戏研发的话,VS这种IDE比较适合,项目规模大了之后,容易控制[Quote=引用 16 楼 qq120848369 的回复:]

我在TX实习时候,周围都是直接vim下开发的,没见到你说的VS下开发再放到linux下。。最多是win下source insight看看头文件啥的加快效率。
[/Quote]
疯魔症 2011-10-07
  • 打赏
  • 举报
回复
真是复杂。。。
qq120848369 2011-10-07
  • 打赏
  • 举报
回复
我在TX实习时候,周围都是直接vim下开发的,没见到你说的VS下开发再放到linux下。。最多是win下source insight看看头文件啥的加快效率。
景荣1 2011-10-05
  • 打赏
  • 举报
回复
其实,你大可不必关注这东西,编译器是最重要的,不需要关注编辑器,用vs也只是当作编辑器用而已,不要本末倒置
景荣1 2011-10-05
  • 打赏
  • 举报
回复
恩,是对,大多数游戏公司都是这样开发的,包括巨人,完美,因为牛人写完网络引擎之后,剩下的实际都是在开发游戏逻辑,和os基本上关系不大了
加载更多回复(11)

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧