红联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. em_box 于 2011-06-19 16:35:09发表:

    常常学习,走走看看

  2. 拼命学习 于 2011-06-19 12:56:18发表:

    学习

  3. 自由之神 于 2011-06-18 22:12:22发表:

    支持啊

  4. rsdeep 于 2011-06-18 21:53:34发表:

    谢谢分享,共同进步

  5. NeverSky 于 2011-06-18 17:53:29发表:

    菜……鸟(中间省略N个菜)飘过

  6. NeverSky 于 2011-06-18 17:52:31发表:

    菜……鸟(中间省略N个菜)飘过

  7. 634632257 于 2011-06-07 15:28:24发表:

    谢谢楼主分享经验

  8. HS_217^_^ 于 2011-06-06 23:19:25发表:

    什么是编译命令呢

  9. dqwit 于 2011-05-29 21:45:31发表:

    妞妞

  10. dqwit 于 2011-05-29 21:40:11发表:

    好好好

  11. breakme 于 2011-05-29 14:03:25发表:

    先给虚拟硬盘分区,

  12. breakme 于 2011-05-29 13:02:03发表:

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

  13. wanglongai0 于 2011-05-27 19:52:29发表:

    学习,学习

  14. chen4u 于 2011-05-27 15:53:16发表:

    share your knowledge with the world!

  15. wudalang1981 于 2011-05-27 15:44:30发表:

    先顶了再说,感谢楼主哦,太感谢了

  16. lxbfly123 于 2011-05-26 13:59:32发表:

    支持

  17. 拾画 于 2011-05-25 14:37:08发表:

  18. Linux_vip 于 2011-05-15 15:50:38发表:

    弱弱的问下,Linux是用C还是用C++还是两个混用来编程?我都被搞晕了,请楼主说一下。

  19. 120lenovo 于 2011-05-11 11:34:06发表:

    支持下

  20. lizhixin9486 于 2011-05-11 10:34:25发表:

    学习学习

  21. hloves1988 于 2011-05-10 18:55:45发表:

    新手加油啊

  22. 120lenovo 于 2011-05-10 15:42:56发表:

    很好再支持一下

  23. 120lenovo 于 2011-05-10 15:40:50发表:

    支持一下

  24. qiao888 于 2011-05-09 17:49:35发表:

    我也是个新手

  25. yiluohuanghun 于 2011-05-02 17:07:46发表:

    学习了.....

  26. tangzhongchun 于 2011-05-02 10:37:01发表:

    继续学习!

  27. hyw322 于 2011-04-30 20:20:08发表:

    引用:
    建议linux下搞c/c++的新手先从编译命令起,而不是makefile,因为makefile确实很难,而且许多时候成功率也很低,很容易就失去信心。
    pl_014 发表于 2011-3-21 17:45



    嗯嗯 记下了

  28. wsyangjian 于 2011-04-30 13:35:07发表:

    支持LZ

  29. tangzhongchun 于 2011-04-30 13:03:49发表:

    我刚才操作了一下,
    原文说:“进入linux操作系统是一个友好的gui图形界面,先按住 Alt+Ctrl+空格,然后松开空格键,再按F2就切换到文本行界面,在当前界面使用Alt+F7又可以切换到GUI 图形界面。”
    是不是应该是使用Alt+F1回到图形界面?至少我的是。

  30. spiedeman 于 2011-04-28 23:05:27发表:

    新手,慢慢来我

  31. spiedeman 于 2011-04-28 23:05:22发表:

    新手,慢慢来我

  32. zs0255 于 2011-04-24 14:27:30发表:

    新手!~

  33. zs0255 于 2011-04-20 19:53:45发表:

    共同进步

  34. ftd505 于 2011-04-18 11:14:01发表:

    {:2_99:}

  35. gute892 于 2011-04-10 21:32:32发表:

    真希望能够立刻学会这些东西

  36. jia2511 于 2011-04-10 00:56:46发表:

    新手路过

  37. yiyelin 于 2011-04-08 14:18:15发表:

    新手任务,得回帖,谢谢LZ分享?????????????灌水莫怪?????????????有机会一定登门拜访????????????

  38. volvervan 于 2011-04-07 14:37:34发表:

    新手 还是慢慢来!

  39. liduo123 于 2011-04-06 21:40:03发表:

    支持楼主

  40. gaochang2010 于 2011-04-05 14:21:32发表:

    学习一下!!!