Skip to content
winlinvip edited this page Sep 26, 2014 · 23 revisions

集成开发环境

Windows平台,一般中国开发者用IDE还是windows,用什么IDE?推荐如下:

  • 建议windows平台:见过有些开发者喜欢用ubuntu的桌面版,说实在的,linux还是擅长服务器,做桌面还不是那么专业。当然mac比windows好,一般来讲,还是windows。
  • C代码建议用SI(SourceInsight):C的跳转,函数定义,SourceInsight都很方便。参考:SourceInsight
  • C++代码,建议用UltimateC++:主要是SI对于C++的类函数声明和定义跳转不方便,有些宏定义也解析有问题,对于类成员函数的代码提示也不完善,总之,C++那些特性,还是UltimateC++做得好些。参考:[UltimateC++(http://www.ultimatepp.org/)
  • SRS是使用UltimateC++做IDE开发的,VS.net也很好不过会在源码目录生成一堆东西,很麻烦。直接设置Assemble的目录为srs/src就可以代码,譬如:Q:\simple-rtmp-server\trunk\src
  • SRS编译和调试当然还是在linux,windows下只是编辑,让他们做各自擅长的事情。

我也比较过其他的IDE,可以参考:开源日志:关于IDE/源代码编辑

JetBrains

JetBrains终于放出来c++的IDE了。目前是60天的预览版,下载:http://www.jetbrains.com/clion/

CLion的主要亮点:

  1. windows下linux程序的IDE。别纠缠vs是不是王中之王,用vs打开srs代码错误就一坨一坨的,没法正常使用。
  2. 可以忽略编译,当作编辑器使用。windows下的linux代码无法编译过,mingw有时也不好使,但是CLion可以当作编辑器使用。
  3. 支持基本功能:函数跳转,类跳转,头文件跳转,hpp和cpp直接跳转,智能提示,没用的宏定义的提示。
  4. 支持FindUsage:函数或者类在什么地方使用了,这个功能对于代码阅读和修改很有用。
  5. 支持Refactor:Rename,Extract,Move,ChangeSignature,PullMemberUp/Down众多减少苦力的功能。
  6. 还有个牛逼的东西,选中后按CTRL+F,自动高亮。这个是非常非常常用的功能,比notepad++好。upp就是没有这个愁死我了。 术业有专攻,JetBrains的IDE做得非常之用心,只要CLion出来,我就果断抛弃upp。

使用方法:OpenProject,选择srs的trunk目录下的CMakeLists.txt,点OK即可。

UPP开发SRS

SRS使用UPP的开发,好处是:

  • 只需要一个配置文件,不会在源码生成乱七八糟的文件。像vs之类就讨厌这个。
  • 不编译,只用来编辑代码,因为windows下面编译过不了。在linux编译和调试。
  • hpp和cpp之间跳转方便,可以方便的在类成员函数和实现之间跳转。
  • 解析宏定义,类定义和函数,模板函数等等,解析都正确,不像SourceInsight解析不对。

下面讲讲使用过程:

第一步,下载和安装upp

http://sourceforge.net/project/downloading.php?group_id=93970&filename=upp-win32-5485.exe

第二步,打开UPP后,新建assembly

新建assembly

第三步,导入srs

导入srs

导入srs

OK

导入srs

设置智能补全键,按CTRL+J出现说明4

默认的智能补全键是CTRL+空格键,这个组合键实际上用来切换输入法。

打开 Setup=>Keyboard shortcuts=>Ide,找到Assist并设置(在最后),设置如下图:

智能补全键

注意:记得把Navigate的快件键改为CTRL+F1(CTRL+J,在前面点位置),否则Assist的新快捷键不会生效。

非常简单!

Winlin 2014.2

Welcome to SRS wiki!

SRS 5.0 wiki

Please select your language:

SRS 4.0 wiki

Please select your language:

SRS 3.0 wiki

Please select your language:

SRS 2.0 wiki

Please select your language:

SRS 1.0 wiki

Please select your language:

Clone this wiki locally