工作中,在linux平台怎么开发软件?

年轻的小蜜蜂 发布于 2015/08/18 19:04
阅读 3K+
收藏 0
RT,我是一名刚入门学习c语言的新人,网易云课堂里面老师是选择的dev-c++作为学习工具使用的。自己也特意查了一下,linux下面的gcc+gdb的使用,感觉很麻烦啊。因为全都是在终端完成的,界面首先就很乱,gcc好像不会显示全部的编译信息,比如一些warning(好像可以加选项解决)。特别是在调试的时候dev-c++很容易选择断点,不用记行数,可以同时很方便地查看代码可以查看CPU窗口,这些要是在终端里面显示的话(我也不知道能不能把win下面ide的功能全部实现),界面的可观性就会变得很差,在调试大型程序的时候会很麻烦吧(只是我的猜想)。
我并没有想激起win和linux的党争,我是实用党,感觉linux这方面不够好,但是很可能是我自己见识浅薄所致,所以来问一问。win下的ide还行,但是有很多功能用不上会显得臃肿,影响速度。

王垠当年提倡「完全用 linux 工作」,然而最近又发文挺 windows 喷 unix,这中间究竟经历了什么?

看过上面的链接后依然没能解决我的问题。
我想知道,各位前辈在linux平台的开发工作是怎么进行的呢?和win一样继续用ide吗?而不是使用vim(...)+gcc+gdb吗?感觉gdb调试起来特别麻烦,很不直观,不便捷,有什么解决方法或者使用技巧吗?还是感觉ide图形界面的调试更方便快捷。

像一些手游,像微信这种app可以纯在linux下完成开发吗?还是写完后拿到win下面调试之类的呢(虽然不知道可行否)?

是否所有的linux下的开发都可以通过ide来完成呢?
作为新手,提问可能会很傻瓜,请见谅。
加载中
0
m
magiclogy

首先是平台问题,windows平台的程序不会去linux开发,反之亦然,跨平台程序,也会优先某个平台的。

另外IDE只是把好多功能集成在了一起,Visual Studio最后进行编译构建还是靠cl和msbuild。至少在构造上,VS是比不上msbuild,Makefile这些工具的(不信你可以试试用VS给C++程序做单元测试)。而且,文本编辑器装上一大堆插件,启动也很慢(100M以上的软件,还有Java编写的IDE你不用SSD,日子真的很难过)。

日志,单元测试都是非常方便的工具。IDE再方便,逻辑上的处理还是很累,跨越好几个文件,大脑很容易乱,而且IDE的断点功能很弱。

最后,希望你不要误解,构建程序只需要输入指令make <TARGET>,gcc后面跟一大串只要在Makefile里就可以了。

m
magiclogy
回复 @年轻的小蜜蜂 : 不管是emacs,还是vim,都有gdb集成的,效果和IDE差不多。一个函数内部的错误用gdb调试还好,但是多个函数跳来跳去,太考验智力了。实时应用,服务器,复杂GUI,单步调试根本操作不起来。
年轻的小蜜蜂
年轻的小蜜蜂
好吧,可能是我还没学到那种程度,就是觉得命令行没有图形点起来快。make我也没学到,就主要感到了不能一边滚动查看代码一遍调试单步很麻烦。
0
eechen
eechen
Linux上使用Qt Creator进行C/C++开发
http://my.oschina.net/eechen/blog/166969


其他的像Eclipse CDT,Netbeans C/C++,Jetbrains CLion也可以,如果你喜欢Java的话.

个人还推荐Geany这个高级文本编辑器,一个使用C语言开发的GTK2应用,很快很强大,也能用于Web开发,是我平常使用的主力编辑器,像自动提示,函数变量列表什么的一应俱全,还内嵌终端,非常好用.
http://my.oschina.net/eechen/blog/361421



只要你喜欢,甚至可以在Linux上构建Windows应用,两个我常用的应用:
在Ubuntu/Debian上编译构建Windows版FileZilla:
https://wiki.filezilla-project.org/Cross_Compiling_FileZilla_3_for_Windows_under_Ubuntu_or_Debian_GNU/Linux
在Linux上交叉编译Windows版Geany:
http://www.geany.org/Support/CrossCompile
年轻的小蜜蜂
年轻的小蜜蜂
先收藏,再仔细看,谢谢了
0
中山野鬼
中山野鬼
做其他语言不知道。写c ,还用ide,只能说你c的工具没有学和用到位。哈。到位,自然一切ide为浮云。特别是测试,ide上的测试,很多都没有意义的。需要对输出文件进行对比测试才有效率。慢慢来吧。做c,就要学会用c自己做开发小工具。用ide的,可以肯定多半是骑在门槛上的家伙。
年轻的小蜜蜂
年轻的小蜜蜂
回复 @中山野鬼 : 稍微有些明白了,我刚起步一段程序的代码量还很少,我还拘泥于断点,单步调试就能还原全部过程的阶段。对情况复杂的现实工作还远远不够,单纯的依靠断点几乎不可以,所以就需要按照您说的从输出的角度来看。
中山野鬼
中山野鬼
回复 @年轻的小蜜蜂 : 一个bug是在一个函数运行了几千次后才会出现,你打算怎么设置断点?哈。对应的信息输出到外部文件,比较两个文件,很容易查出错误的。
年轻的小蜜蜂
年轻的小蜜蜂
的确才开始学习c和linux。就是觉得命令行没有图形点断点位置来得快。尤其是在不能一边滚动查看代码一遍调试单步很麻烦,很容易忘记
0
铂金胖子
铂金胖子

学c: 远程登录linux, 用vim写。


年轻的小蜜蜂
年轻的小蜜蜂
vim倒是会基础使用和少量快捷操作,就是觉得调试用gdb很麻烦,没有图形界面点断点方便,不能一边滚动,一边单步调试,很容易忘记
0
DF_XYZ
DF_XYZ

我一开始就是gedit+gcc+gdb学起的,没感觉有多麻烦;LZ你一开始就接触了IDE,不习惯终端觉得麻烦很正常

铂金胖子
铂金胖子
回复 @年轻的小蜜蜂 : 调试最简单粗暴的方法就是写日志或者printf :-)
DF_XYZ
DF_XYZ
回复 @年轻的小蜜蜂 : 其实我感觉设断点不如printf()方便,:D
年轻的小蜜蜂
年轻的小蜜蜂
就是觉得命令行没有图形点断点位置来得快。尤其是在不能一边滚动查看代码一遍调试单步很麻烦
0
orangleliu
orangleliu
开发看个人
0
baozhuni
baozhuni
bash, svn checkout, vim, gcc, make, gdb, svn commit ...
-1
Micooz
Micooz
1. Linux上了XWindow就没什么意义了,不要在Linux上用IDE做开发。 2. Linux只作为操作系统为应用提供服务。 3. 做开发建议在windows和os x下进行。
年轻的小蜜蜂
年轻的小蜜蜂
回复 @Micooz : 所以可以理解为微信和很多app几乎都是在win下面完成开发的咯?
eechen
eechen
回复 @Micooz : 就拿我用的最多的软件Firefox来说,Linux上体验甚至好于Windows上的体验,有同感的伙伴们可以冒个泡。
Micooz
Micooz
@eechen 嗯,以上仅个人见解。我对用户体验要求很高,如果要用GUI,那用户体验一定要做的非常好。如你所说,Qt Creator,Eclipse,Netbeans,CLion我都用过,它们都提供跨平台版本,相比Linux,我更喜欢Windows和OS X上的版本,因为用户体验做的比Linux更好更流畅。
eechen
eechen
你这样说就不对了,Linux上的GUI软件也不少,你这样说,不是给Linux上所有GUI软件判了死刑吗?我,作为一个从10.04到14.04的Ubuntu桌面用户,完全不赞同你的看法,以我的使用经验保证。
返回顶部
顶部