给linux下的c程初学者
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
- jimcorner
- 帖子: 35
- 注册时间: 2010-10-21 18:55
给linux下的c程初学者
现在大学里都是用turbo c 2.0教c程的吧,可是到了linux下没法用tc了。初学者由于一种先入为主的心理,一旦没有找到类似tc的替代物很容易认为linux下很难编c程。
实际不是这样,linux就是一个c程写成的系统,原生支持c,因为和windows的软件设计理念不同没有tc不代表linux差。下面就介绍适合初学者的linux编c程的方法。
首先要抛弃windows带给你的思维定势,在linux下编c程不是只用一种工具,而是分为编辑(用vi,emacs,gedit),编译(用gcc )和调试(用gdb)这三个部件。
对于ubuntu10.10用户来说vi,gedit,gcc,gdb是装好了的,可以直接编程,不用装什么软件。
1.编辑
vi大家都会用吧,这里就不多说了。直接vi /home/mint/c/helloworld.c就好了。关于配置tab和自动对齐就自己google去吧。
注意:后缀要为.c,否则开不了语法高亮。
2.编译
对于初学者只要简单的编译就可以了。当写好了helloworld.c后cd到那个目录下去,然后gcc -g -o helloworld helloworld.c就好了,如果你编的没有错误的话。
运行:./helloworld
解释:-g这个参数是为第三步调试做准备的; -o是把生成的.obj可执行文件命名为你想要的名字,这个例子中我命名为了helloworld
3.调试
很经常的情况是我编译好了可是出了逻辑错误,这时就需要gdb了
先运行gdb
mint@mint-ThinkPad ~/c $ gdb helloworld
GNU gdb (GDB) 7.2-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/jim/c/helloworld...done.
(gdb)
gdb功能很多,但作为初学者只需要知道 设置断点,单步,设置watch 就好了
进入了gdb之后,运行程序只要用run就可以了
(gdb)run
a>断点
使用break命令:比如要把断点设在第三行break 3
查看断点:info break
(gdb)break 3
b>单步
设置了断点后运行到断点处,然后使用next单步运行
(gdb)break 3
(gdb)run
(gdb)next
c>设置watch
在运行之后使用watch命令设置watch,如watch n
break 3
(gdb)run
(gdb)next
(gdb)watch n
ps.关于gdb的详细用法参见这里
实际不是这样,linux就是一个c程写成的系统,原生支持c,因为和windows的软件设计理念不同没有tc不代表linux差。下面就介绍适合初学者的linux编c程的方法。
首先要抛弃windows带给你的思维定势,在linux下编c程不是只用一种工具,而是分为编辑(用vi,emacs,gedit),编译(用gcc )和调试(用gdb)这三个部件。
对于ubuntu10.10用户来说vi,gedit,gcc,gdb是装好了的,可以直接编程,不用装什么软件。
1.编辑
vi大家都会用吧,这里就不多说了。直接vi /home/mint/c/helloworld.c就好了。关于配置tab和自动对齐就自己google去吧。
注意:后缀要为.c,否则开不了语法高亮。
2.编译
对于初学者只要简单的编译就可以了。当写好了helloworld.c后cd到那个目录下去,然后gcc -g -o helloworld helloworld.c就好了,如果你编的没有错误的话。
运行:./helloworld
解释:-g这个参数是为第三步调试做准备的; -o是把生成的.obj可执行文件命名为你想要的名字,这个例子中我命名为了helloworld
3.调试
很经常的情况是我编译好了可是出了逻辑错误,这时就需要gdb了
先运行gdb
mint@mint-ThinkPad ~/c $ gdb helloworld
GNU gdb (GDB) 7.2-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/jim/c/helloworld...done.
(gdb)
gdb功能很多,但作为初学者只需要知道 设置断点,单步,设置watch 就好了
进入了gdb之后,运行程序只要用run就可以了
(gdb)run
a>断点
使用break命令:比如要把断点设在第三行break 3
查看断点:info break
(gdb)break 3
b>单步
设置了断点后运行到断点处,然后使用next单步运行
(gdb)break 3
(gdb)run
(gdb)next
c>设置watch
在运行之后使用watch命令设置watch,如watch n
break 3
(gdb)run
(gdb)next
(gdb)watch n
ps.关于gdb的详细用法参见这里
-
- 帖子: 312
- 注册时间: 2010-02-01 19:24
- pointer指针
- 帖子: 3429
- 注册时间: 2011-02-25 23:23
- 月下叹逍遥
- 论坛版主
- 帖子: 33994
- 注册时间: 2010-10-07 14:23
- 系统: Archdows10
- 来自: 某系某星某洲某国某省某市
- 联系:
-
- 帖子: 660
- 注册时间: 2008-10-08 22:01
Re: 给linux下的c程初学者
5年前学习C语言的方式真的很不好
那时去学校机房里 就一个TC
一点都不懂整个过程 只知道在那个蓝色框框里输入教材的code
然后点击图标
那时去学校机房里 就一个TC
一点都不懂整个过程 只知道在那个蓝色框框里输入教材的code
然后点击图标
代码: 全选
其实我是个Debian GNU/Linux用户
Octave中文:http://forum.ubuntu.org.cn/viewtopic.php?f=35&t=318969
- GoodLuckyBoy
- 帖子: 50
- 注册时间: 2010-04-23 17:11
- remeber
- 论坛版主
- 帖子: 13030
- 注册时间: 2009-01-06 15:18
- 来自: 人间
Re: 给linux下的c程初学者
依旧继续中。thorne 写了:5年前学习C语言的方式真的很不好
那时去学校机房里 就一个TC
一点都不懂整个过程 只知道在那个蓝色框框里输入教材的code
然后点击图标
“有一种被人抛诸脑后的过去,包含一些不该遗忘的点点滴滴。欢笑之余,我将故旧拾起,才刹见自己的薄情。人世间似乎存在着某种公平,每个人都曾被抛掷在他人的遗忘中;而今你所有哽咽难宣的话语,也正是你曾为人所期盼,却永远听不见的字句。” —赫曼 赫塞
-
- 帖子: 39
- 注册时间: 2010-05-01 15:23
Re: 给linux下的c程初学者


-
- 帖子: 302
- 注册时间: 2009-07-04 16:18
Re: 给linux下的c程初学者
我们这倒是换了VC6.0了,不过,当然了,其他还是一样remeber Jiraiya 写了:依旧继续中。thorne 写了:5年前学习C语言的方式真的很不好
那时去学校机房里 就一个TC
一点都不懂整个过程 只知道在那个蓝色框框里输入教材的code
然后点击图标
Freedom is the power to decide what your computer does, and the only way to have this freedom is to know what your computer is
doing. Freedom is a computer that is without secrets, one where everything can be known if you care enough to find out.
doing. Freedom is a computer that is without secrets, one where everything can be known if you care enough to find out.
- SmallV
- 论坛版主
- 帖子: 9017
- 注册时间: 2011-01-26 17:52
- 来自: 万林丛中的一抹浓绿,夹带落日余晖的安祥
-
- 帖子: 259
- 注册时间: 2008-11-14 20:35
Re: 给linux下的c程初学者
我们大一上就用UNIX学C,那时我连电脑是啥样都还不清楚,初中没见过电脑,高中的计算机课名存实亡,又没去过网吧……
所以我windows中毒不深
所以我windows中毒不深
- 懒蜗牛Gentoo
- 论坛版主
- 帖子: 7362
- 注册时间: 2007-03-02 17:36
- 系统: Linux Mint
Re: 给linux下的c程初学者
支持,不过vi对初学者应该还有点难度,尤其是没装vim的,还是用gedit更容易上手。
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
10.04新手入门——笨兔兔讲述自己的故事
- 月下叹逍遥
- 论坛版主
- 帖子: 33994
- 注册时间: 2010-10-07 14:23
- 系统: Archdows10
- 来自: 某系某星某洲某国某省某市
- 联系:
-
- 帖子: 14
- 注册时间: 2010-11-02 18:14
Re: 给linux下的c程初学者
Mark


-
- 帖子: 22
- 注册时间: 2009-09-17 20:10