红联Linux门户
Linux帮助

linux下c++编程初探

发布时间:2011-03-20 17:02:01来源:红联作者:Dangerous_1
出于工作的需要以及未来技术发展的趋势,我开始了linux下c++编程之旅!
(一)linux菜鸟起飞
偶然间从同学那里了解到VMware虚拟机下可以安装操作系统,实现一个主机,多个虚拟机共存的方式并且不会损坏硬盘数据。于是,兴奋的拷贝来在电脑上安装好linux操作系统。整个过程并非一帆风顺,由于本人的老爷机光驱有问题,只能将软盘的数据转化为iso镜像文件,才能够在虚拟机中成功安装。
a.系统的切换
linux区别于windows,就是其能够在命令行模式下工作。而windows是基于GUI界面的用户操作。比如说,你从A地到达B地,通过汽车这个交通工具有两种方式可以到达。一是,通过司机驾车,你充当乘客,不考虑如何驾驶汽车只需说明目的地即可,而windows就好比是载车的司机,只负责将你送到目的,而不会让你驾驶汽车。二是,司机将车钥匙给你,你自己驾车前往目的地,你必须学会如何驾驶汽车才行,而linux就是这个平台,你必须通过各种命令完成你想要的操作已达到某种实现。
进入linux操作系统是一个友好的gui图形界面,先按住 Alt+Ctrl+空格,然后松开空格键,再按F2就切换到文本行界面,在当前界面使用Alt+F7又可以切换到GUI 图形界面。(书本上找不到这个操作,摸索了很久,在一个论坛中的帖子看到,激动ing\(???)/)
b.基本命令的熟悉
在文本行界面,全都通过命令实现,经过两天学习,大致能够实现基本的操作(还有待熟悉)。。。。。
(二)初探C++编程(涅?丛生)
经历过windows中GUI良好的界面之后,在linux命令行下进行C++程序的编写,编译,连接,执行刚开始举步维艰啊(~~~~(>_<)~~~~ )
a.使用vi编辑器编写源代码
b.用linux系统自带的GNU编译器,调试程序
c.用Makemile文件工具实现源代码的自动编译,连接
遇到的问题及解决方案:
1.makefile文件的书写
一条定义目标文件,一条定义执行文件(即命令行)
命令行 段首必须使用,不能使用空格或其他,否则编译器无法识别 !!!!!!!!慎记
过程如下
1)键入ls 查看当前目录文件



2)执行命令$ make


missing separator.终于理解了,遗漏分隔符即键(困惑了我好久好久,书上只讲了怎么书写makefile的格式,完全没涉及实战操作的注意事项,幸得网页论坛高手前辈的遗迹,才解决,激动不已(*^__^*) 嘻嘻……
命令行下$ vi makefile进行修改,再次执行make,得到结果如下


可以看到makefile文件书写正确,只是源代码中出现错误:
undefined reference to ‘ Hello::sayHello()' 没有定义参数,经过一番挣扎发现hello.cpp中定义sayHello()函数时没有限定作用域(哎,悲剧啊,以后要小心语法的错误)返回继续修改够再次执行make得到如下结果

O(∩_∩)O哈哈~终于编译连接成功,键入ls命令查看

可以看到,经过编译连接生成了hello可执行文件(在linux下执行文件后缀名省略(好像为*.out),在windows下为@.exe,这是二者的不同。

下面运行一下。键入命令: $ ./hello



整个过程,终于实现。基本上掌握了在linux下编译,连接程序的方法。希再接再厉!!!!

后记:书写是一种思考的习惯,对学习和工作都异常重要,希望把每天所学,所思能够以学习日记的方式展现出来。Nothing can take the place of persistenc !
文章评论

共有 143 条评论

  1. ckeling 于 2011-04-04 17:02:33发表:

    你加油 不过 你的方法我就不用了

  2. wqflyercn 于 2011-04-02 16:29:05发表:

    支持楼主

  3. teber 于 2011-04-02 10:55:36发表:

    用惯了windows,再用linux会发现操作很麻烦,而用惯了linux,再用windows,会发现windows下想要调试一些设备信息和应用更是一件麻烦的事情;

  4. soulkiller520 于 2011-03-31 21:30:38发表:

    多发点C++资料啊

  5. 孙晓 于 2011-03-31 16:10:55发表:

    谢谢,你说了我现在知道了

  6. pcy900203 于 2011-03-31 11:16:19发表:

    支持楼主,大家共同进步

  7. pcy900203 于 2011-03-31 11:16:15发表:

    支持楼主,大家共同进步

  8. wl0406 于 2011-03-31 00:00:44发表:

    学习中,谢谢分享

  9. nothing0318 于 2011-03-30 21:47:28发表:

    受用

  10. iboly 于 2011-03-30 21:32:41发表:

    [code][/code]

  11. jiamianwuzhe 于 2011-03-30 09:28:39发表:

    学习了:0)1

  12. qiangbird 于 2011-03-28 14:12:35发表:

    看了很激动阿,不过还是开源主席说的好,先从编译命令开始,我要先打好基础,不能丢信心

  13. iboly 于 2011-03-27 20:55:49发表:

    初学,兴奋中……

  14. qq470320278 于 2011-03-23 16:37:23发表:

    (6)m:b:0w5ty(1

  15. anchor2088 于 2011-03-23 16:05:41发表:

    我和你一样,是新手啊

  16. vincent00 于 2011-03-23 15:09:59发表:

    现在开始学习!谢谢分享!

  17. pl_014 于 2011-03-21 17:45:59发表:

    建议linux下搞c/c++的新手先从编译命令起,而不是makefile,因为makefile确实很难,而且许多时候成功率也很低,很容易就失去信心。

  18. langduhua 于 2011-03-21 14:56:14发表:

    二楼的鸟,先给虚拟硬盘分区,设置启动了哇!

  19. Growth兆 于 2011-03-21 10:38:52发表:

    感谢Dangerous_1的分享,本贴加入到论坛顶置的Linux应用索引贴中

  20. txgc_wm 于 2011-03-20 22:52:58发表:

    支持楼主,大家共同进步。share your knowledge with the world!

  21. txgc_wm 于 2011-03-20 22:52:50发表:

    支持楼主,大家共同进步。share your knowledge with the world!

  22. uiyte 于 2011-03-20 21:55:04发表:

    支持楼主

  23. z19955 于 2011-03-20 17:20:06发表:

    我也是装了vmware然后我用虚拟机装小红帽。。装完后里面全部都是空的。。为什么呢?求解下~