初学linux c++编程

8 篇文章 0 订阅

习惯了window的编程环境,习惯了Microsoft VS的方便使用,习惯了IDE的一键搞定,转到Linux环境,颇有些不适用。虽然Linux也有强大的IDE开发环境,如我比较喜欢的Eclipse,但是既然转到了Linux,就要去学习一下Linux的精华,看到周围同事的全命令行编程,一个字,酷,但是不能只是干瞪眼的只是羡慕,还是一个字,学。

(一)学习编辑程序:Vim

如同电脑新手学习打字一般,我开始学习使用Vim。Vim不愧是编辑器里的战斗机,全键盘操作给程序编辑带来了很大的方便。但是Vim的学习曲线比较大(见主流文本编辑器学习曲线),初学者学习起来比较吃力。从插件的安装配置,vim命令的学习和使用,一步步慢慢熟悉起来,但是对于代码提示和补全貌似Vim就弱了些,这都是被IDE惯出来的毛病啊。

       推荐酷壳网(http://coolshell.cn/)里面有不少介绍vim的文章

       主流文本编辑器学习曲线:http://coolshell.cn/articles/3125.html

       游戏:VIM大冒险 http://coolshell.cn/articles/7166.html

       简明 Vim 练级攻略http://coolshell.cn/articles/5426.html

给程序员的VIM速查卡http://coolshell.cn/articles/5479.html

经典vim插件功能说明、安装方法和使用方法介绍http://blog.csdn.net/tge7618291/article/details/4216977

 

(二)gcc/g++

编辑完程序就得学习编译了,这就要学习GCC了。GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 GNU Compiler Collection 也即是 GNU 编译器家族的意思了。另一方面,说到 GCC 对于操作系统平台及硬件平台支持,概括起来就是一句话:无所不在。

学习GCC主要就是学习gcc命令中的常见选项:

-oFILE                指定输出文件名,在编译为目标代码时,这一选项不是必须的.如果FILE没有指定,默认文件名时a.out

-c                     只编译不链接

-DFOO=BAR              在命令行定义预处理宏FOO,其值为BAR

-IDIRNAME              将DIRNAME加入到包含文件的搜索目录列表中

-LDIRNAME              将DIRNAME加入到库文件的搜索目录列表中

-static                 链接静态库,即执行静态链接默认情况下gcc只链接共享库

-shared                生成共享目标文件。通常用在建立共享库时

-IFOO                  链接名为libFOO的函数库

-g                     在可执行程序中包含标准调试信息

-ggdb                  在可执行程序中包含只有GNU debugger(gdb)才能识别大量调试信息

-O                     优化编译过的代码

-OLevel                指定代码优化的级别为Level,0<=Level<= 3,如果未指定Level,则默认级别为1

-ansi                  支持ANSI/ISO C的标准语法,取消GNU的语法扩展中与该标准有冲突部分(但这一选项并不能保证生成ANSI兼容的代码)

-pedantic              允许发出ANSI/ISO C标准所列出的所有警告

-pedantic-errors         允许发出ANSI/ISO C标准所列出的所有错误

-traditional             支持Kernighan & Ritchie C 语法 (如用旧式语法定义函数).

-w                     关闭所有警告,建议不要使用此项

-Wall                  允许发出gcc能提供的所有有用的警告.也可以用-W{warning}来标记指定的警告

-werror                把所有警告转换为错误,以在警告发生时中止编译过程

-MM                     输出一个make兼容的相关列表

-v                     显示在编译过程的每一步中用到的命令

 

(三)Make/SCons

对于make,我依旧是菜鸟,继续学习中。谁有好的资料可以推荐下。

 

陈皓(PS:酷壳博主)写的《跟我一起写 Makefile》http://download.csdn.net/detail/xuh5156/4554872

Gnu make 中文手册 V3.8 http://download.csdn.net/detail/xuh5156/4554898

 

SCons自称是make的超级替代品,是用Python写的,其编译文件SConstruct也是采用Python编写,这对于比较熟悉python的人是很方便的。但是目前好像没有什么中文的资料,只能去看英文的手册了。

(四)gdb

简单的gdb用法

1. breakfunctiona

    在functiona函数处设置端点

2. run

    让程序从main入口执行到断点functiona

3. n

    next,单步执行,相当于VC中的调试命令step over

4. s

    step into,进入子函数,察看子函数的执行情况

5. bt

    backtrace查看堆栈的情况

6. p variant

    print出变量variant的值

7. l

    list命令,查看当前的行的上下文,默认显示10行

8. pvariant=correct value        

    如果发现此时的variant的值不正确,我们可以给variant设置一个正确的值(correct value)

    然后,用第10项中的命令继续执行

9. c

    continue 继续执行,可以是经过按照更改后的值继续执行。相当于VC中的F5

10. quit orCtrl+C

     退出gdb

 

逐渐的学习下来,一个Linux下的菜鸟也算练得差不多了,还颇有收获,剩下的就是熟练的应用了。继续一步步的学习,一步步的深入,期待渐入佳境吧。

再次感谢陈皓及他的酷壳网。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值