红联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. Xiaoge2030 于 2016-12-07 10:13:18发表:

    我也要学Linux下C++编程!

  2. hx8321 于 2014-07-30 11:44:06发表:

    正在攒钱中,也在搜寻知识中,这个真的很详细,支持你

  3. hx8321 于 2014-07-30 11:44:03发表:

    正在攒钱中,也在搜寻知识中,这个真的很详细,支持你

  4. hx8321 于 2014-07-30 11:43:53发表:

    正在攒钱中,也在搜寻知识中,这个真的很详细,支持你

  5. hx8321 于 2014-07-30 11:41:58发表:

    正在攒钱中,也在搜寻知识中,这个真的很详细,支持你

  6. mymain 于 2014-07-25 16:24:37发表:

    我也是

  7. l550747946 于 2014-07-10 17:28:15发表:

    学习

  8. jfjlbt 于 2014-06-29 12:35:39发表:

    学习学习

  9. 碧羽宣 于 2014-06-27 20:16:20发表:

    不错,正使用qt和codeblocks

  10. garbage哥 于 2014-06-26 17:35:56发表:

    我也是新手啊 努力学习啊

  11. ltf8341 于 2014-06-23 20:30:43发表:

    新手报到

  12. 王某人 于 2014-06-23 18:43:56发表:

    也想学它,但感觉到好畏惧。。

  13. cyjdlxd 于 2013-11-06 10:44:08发表:

    不会c++啊

  14. aovis 于 2013-11-06 06:01:27发表:

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

  15. hanes1005 于 2013-11-05 17:00:32发表:

    学习下!

  16. guo5707 于 2013-10-29 22:22:45发表:

    努力学习linux

  17. jeffkuang1 于 2013-10-22 10:10:14发表:

    支持楼主。

  18. garyheart 于 2013-10-08 09:44:52发表:

    想 学 想学 学位自用

  19. niejinci 于 2013-10-07 22:22:36发表:

    受教了

  20. bam_4 于 2013-10-07 18:06:34发表:

    lz很不错哦。

  21. abigboy 于 2013-10-07 16:09:55发表:

    我现在干刚开始学 一头雾水啊 有没有人能指点下

  22. 夜光杯lyx 于 2013-08-27 12:52:35发表:

    真的很受教!

  23. 1457890a 于 2013-07-30 10:00:42发表:

    新人来报个到

  24. a937983423 于 2013-07-30 09:52:41发表:

    新手任务,得回帖,谢谢LZ分享

  25. w_miracle 于 2013-07-27 20:07:40发表:

    看不到图片呢。。。

  26. Amy_zcc 于 2013-07-23 16:19:11发表:

    楼主写的虽然很少,但是我能看懂

  27. charle2013 于 2013-06-29 09:07:07发表:

    路过,看一下

  28. youjh90 于 2013-04-16 20:51:12发表:

    新手路过

  29. ting19820 于 2013-04-16 20:44:36发表:

    支持

  30. ohmygoddess 于 2012-12-09 04:03:16发表:

    支持楼主。
    我也是新手,不过如果编译的话,可以用 g++ -o object code.cpp 这样的命令实现。

  31. monster_wang 于 2012-12-08 19:56:10发表:

    开始学习了,多谢

  32. my001 于 2012-12-08 04:40:33发表:

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

  33. my001 于 2012-12-08 04:40:23发表:

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

  34. Tennor 于 2012-11-28 15:27:51发表:

    我来学习学习

  35. gdfs 于 2012-11-26 22:29:57发表:

    多谢,学习学习

  36. wwcd 于 2012-11-23 17:55:15发表:

    谢谢分享!

  37. abcd2008 于 2012-11-15 12:23:59发表:

    都是新手,一起学习

  38. felixffffff 于 2012-11-15 10:46:41发表:

    谢谢分享

  39. mesu 于 2012-05-09 14:38:38发表:

    谢谢分享

  40. serven 于 2012-05-06 18:36:57发表:

    支持……