新手关于学习C的困惑(Vim和Gcc使用的疑问),望各位大牛能帮助小弟解决

2011-04-30 21:40:59 +08:00
 se7en_matrix
最近在看C Program Language(谭浩强的那本已经学过了,国二考试也过了,其实那考试根本脱离了编程本身),一直很困扰用什么工具去解决编译测试自己程序,然后在网上看过别人一致推荐Vim,GCC和GDB解决方案,但是我在简单地学习过之后,感觉对于像我这样一个新手很难上手这三样软件。
我想问的是:

1.有什么可以快速上手Vim的书(最好有下载地址),我知道熟练掌握VIM需要不断的实践,但是我目前的要求就是可以方便测试我的C程序,而不是浪费更多时间在有些细节上面,Vim Tutor看了,但是没剩下多少东西,而且更重要的是我还是不知道怎么快速测试我的程序。
2.GCC的问题,难道每次测试都必须在VIM打完之后,用GCC来编译?用得着记忆那么多GCC命令?
3.我用得Ubuntu上问题多多,比如显卡的开源驱动和NV的驱动的冲突(导致我每次都得Ctrl+Alt+F2去挑亮度),比如装软件老是出现Grub-Pc错误的提示,怎么解决?
4.其实我更想在WIN7下编程C,不知道有什么推荐?用IDE(比如VISUAL C++ 2008 EXPRESS? )还是GVIM和什么编译器?

小弟不胜感激各位的帮助
7594 次点击
所在节点    问与答
31 条回复
yelusiku
2011-04-30 21:55:38 +08:00
vim tutor光看是记不住什么东西的,关键是边看边练,实践中记忆。一般的c程序只需要使用很少几个gcc命令,用makefile组织一下,在vim里可以直接:make。gdb也是只需要先记住简单的命令,如断点、单步等,使用中提高。至于ubuntu,建议安装在windows上的虚拟机里,别去折腾什么显卡驱动,太废精力。另,devc++和codeblock都不错。
se7en_matrix
2011-04-30 22:02:21 +08:00
@yelusiku 谢谢你的建议。
1.我最近借了一本C核心程序设计,里面有详细的GCC和GDB的介绍,就是不知道该注重什么东西。
2.我去年就装了UBUNTU 10.04,感觉装软件包很方便,就是实际使用起来兼容性问题太多,很烦心。
iwinux
2011-04-30 22:17:02 +08:00
我的建议是在Windows系统里安装一个 Cygwin。这样你就可以在自己熟悉的操作系统里,用GCC/GDB.

至于编辑器,如果一开始不适应的话,可以找个比较容易上手的,比如Notepad++
chloerei
2011-04-30 22:17:22 +08:00
1. 没有捷径。
2. make(Makefile)

其他不懂

快速测试是一个话题,现在的我没有自动测试是不会写代码对。
se7en_matrix
2011-04-30 22:21:28 +08:00
@iwinux 谢了,我试试看,至少我认为从某种角度上来说,Liunx比Windos更能了解计算机本质
zztczcx
2011-04-30 22:22:21 +08:00
记得vim之父说过如何高效使用的一句话就是,在自己写代码的时候,发现哪里可以改进、提升速度,或是感觉有什么不爽的,去google一下,基本上都可以找到解决方法。这就是vim的强大吧。常用的命令,还是要熟练。
se7en_matrix
2011-04-30 22:23:39 +08:00
@chloerei 谢谢,我想继续问你一下,你的最后一句话是什么意思?
“现在的我没有自动测试是不会写代码对”?
obiwong
2011-04-30 22:27:19 +08:00
iwinux
2011-04-30 22:28:20 +08:00
@se7en_matrix Linux在某种程度上的确比Windows更适合写程序。

但我的看法是,目前你是在学C语言,那就应该集中精力学C语言,不要被其他的事情(比如操作系统,比如编辑器)分心。

等你C语言学得差不多的时候(比如看完手头这本书),再回来折腾操作系统或编辑器也不迟。
buxianyu
2011-04-30 22:32:38 +08:00
我是在Windows Xp中安装了Borland C Compiler 5.5,又安装了Gvim 7.3,设置好path(可以在“系统”-“高级”-“环境变量”里面设)后,在cmd命令行窗口即可以较好地使用vim,和Linux下相差不大,再用bcc32编译c源文件。

在Ubuntu下,直接打开终端,vi hello.c,即可编辑hello.c或其他的源文件。编辑好,直接gcc hello.c,再执行./a.out 即可运行可执行文件。

vim的操作可参考 www.v2ex.com/t/11821

vim tutor还是要先亲手练习一遍。
liangsdu
2011-04-30 22:33:08 +08:00
1. 如果楼主用vim的话,推荐c/c++ support这个script,会在菜单里加一个c/c++的菜单项,选择里面的命令就可以(前提是path里面有gcc)
2. 如果在win7里面编c/c++的话用codeblocks就可以,推荐csdn/loaden编译的版本,自带vc/gcc,方便使用
lwjef
2011-04-30 22:36:09 +08:00
vim暂且先不学 先耍好C再学吧 vim门槛虽高 但是熟练之后还是很棒的
chloerei
2011-04-30 22:36:38 +08:00
@se7en_matrix 测试驱动开发。不太用调试器。
AntiGameZ
2011-04-30 22:37:16 +08:00
笑而不语,这边的哥们都中毒了么?初学者,且不论动手能力,xNix的能力怎样,就给下VIM/GCC的猛剂。

初学者,自己掂量掂量,如果想一心入门,最好还是抛开那些工具的门槛。用CFree或者微软的Visual C++ Express,挺好。遇到工具上的问题,起码也有靠谱的官方文档参考。

LZ根据自己情况取舍吧。
iwinux
2011-04-30 22:40:41 +08:00
@AntiGameZ 赞同。话说我当初居然被忽悠去用 Turbo C (2003年 = =!!!)
chloerei
2011-04-30 22:47:46 +08:00
门槛高比较好还是门槛低比较好,也许可以确定的是最终还是看人本身。

山就在那里,怎么爬都有那么高。

我学C的时候开始是用eclipse,后来才去vim。
yelusiku
2011-04-30 23:08:43 +08:00
@chloerei 不太建议初学者用TDD的方法来除错,况且又是C这种级别的语言。调试本来就是程序开发中非常重要的技能,打好基础是关键,自动测试是不可能取代调试的。
yelusiku
2011-04-30 23:15:56 +08:00
@AntiGameZ VC++的复杂度也不比gcc低多少,而且很多东西包装之后复杂度根本没有降低多少的情况下反而离C语言的本质更远了。想学好C语言是不可能绕过编译链接这样的过程的。

从楼主目前的情况来看,最需要的应该是一本靠谱的入门书籍和循序渐进的练习。
推荐一个不错的教程:http://learn.akae.cn/media/index.html
AntiGameZ
2011-04-30 23:38:19 +08:00
@yelusiku

这只能留给他自己去决定。

拿自己来举个并不是很恰当的例子:一直在VC2005上写C/C++,2,3年前吧,因为项目需要转到xNIX上,自然也用起来GCC。转换很顺畅,虽然面对很多变化,但自己没有觉得遇到阻力。但是新加入的一个新人,除了装过uBuntu Desktop,语言和算法比较熟络之外,没什么项目经验。编译整个项目到部署就花了他2天时间,这还是有人在边上时不时指导。很多问题,我自己都不曾遇到过。后来想了一下,很多时候因为熟悉,就可以自然避免掉很多不必要的弯路,以至于自己压根不知道,“啊,也能出这样的错误啊”。
ssword
2011-05-01 00:19:10 +08:00
vim可以用肌肉学,用上两个月下来,不能上手也能适应了。
vim+gcc这个路数已经暗示是unix的编程环境了,unix的文化也自然会接触到:使用脚本将重复性的工作自动化。楼主说“每次都要敲gcc的命令”,unix的长处也正是在回避这点上面,写一个Makefile,以后编译或者调试都只需要一个make命令即可,make life easier.
我通常是在ubuntu的一个虚拟桌面下开一个gvim和terminal,切换起来也很方便。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/12381

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX