Linux开发常用工具

 最近一直忙着学Linux下的编程,书籍主要以<<Unix环境高级编程>>为主,工具主要使用cc,gcc编译器,gdb调试器,vim编辑器,因为不熟悉Linux环境,所以没有使用Linux操作系统,仅下载了安装了Cygwin,感觉入门不难,但是那些琐碎的技巧还是要记一些的,把经常要用的罗列出来,以后好查找.随着学习的深入,还会逐步添加内容的.

1生成目标文件

gcc -c sourcefile1.c sourcefile2.c或cc -c sourcefile1.c sourcefile2.c

2生成静态链接库(需要使用目标文件sourcefile1.o sourcefile2.o)

ar -rc libname.a sourcefile1.o sourcefile2.o

3生成动态链接库

gcc -fpic -shared -o libname.so sourcefile1.c sourcefile2.c

-fpic 使输出的对象模块是按照可重定位地址方式生成的。

-shared指定把对应的源文件生成对应的动态链接库文件libname.so文件。

4使用静态库

分2步:1)编译生成目标文件 gcc -c -lDIRECTORY/libname main.c

          2)生成可执行文件 gcc -o main -lDIRECTORY/libname main.o libname.a

DIRECTORY为库所在的路径,建议使用相对路径

5使用动态库

动态库分为隐式调用和显式调用,隐式调用和使用静态库差不多,只要将第2步的libname.a改成libname.so就可以了.显式调用需要结合程序给出实例,暂不讨论.

 6调试程序

编译时需要使用-g选项来编译程序,例如:gcc -g sourcefile.c,默认生成a.out,然后输入命令gdb a就可以调试了.

7makefile的编写

最简单的makefile可以用下面这个例子来表示:

Projectname:

    cc -o programname sourcefile.c

clean:

    rm sourcefile.o programname.out

以makefile为文件名保存后,敲make命令就可以了,再敲make clean就将sourcefile.o和programname.out删除了.

8压缩和解压文件

想要学习编程,看别人写的代码是必要的,所以就要从网上下载一些Linux/Unix的源代码,这是肯定会用到的就是解压工具了,所以tar还是很重要的,解压一个包不是很难,基本上使用以下的例子来阐述:

tar -xvf stevens.tcpipiv1.tar.Z

9显示文件内容

cat命令是我常用的,后面跟文件名就好了.如果一凭显示不完,可以用管道将它输出到more上面然后一点点往下看,就像下面这样:cat filename | more,从这里我才感觉到Linux真的功能强大,但他的强大在于使用的人...至少我还不太会使用,呵呵.

10查看程序的大小

使用size命令可以查看程序的text, data, bss, dec及hex的大小.

11在文件中查找字符串

在编辑源文件时,我们要用到更多的技巧,如果源代码行数很多,而且文件的数目也很多,我们不可能记住每个函数在哪个文件中哪个位置定义,所以要用到以下的工具来进行定位,列举一例:

grep -n main *.c

这个可以查找出main函数的所在位置,当然可能会存在多个函数,这就需要我们根据输出的信息在进一步确认了.另外,选项有以下几个,其具体含义如下所示.

-n 同时列出改词出现在文中第几行

-c 计算该词出现的次数

-i 比较时不计较大小写的不同

 12编辑器VIM的使用

这个说起来光简单用法恐怕就可以用一整篇文章了,常用的命令大致如下:

":1"到第一行,冒号后面跟数字,数字是几就到第几行

":set cindent",设置缩进格式为C语言的缩进格式

":set number",显示行号

"#"向前搜索

"*"向后搜索

"ndd"删除当前光标位置的n行

"nyy"粘贴,n为粘贴的行数

"CTRL-R" 恢复

"/str/"搜索字符串str,再按"n"跳到下一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值