xml地图|网站地图|网站标签 [设为首页] [加入收藏]
Linux应用开发入门
分类:操作系统

 find删除

下面继续我们的编译过程

语法

rm [options] name...

参数

  • -i 删除前逐一询问确认。
  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  • -r 将目录及以下之档案亦逐一删除。

  find /root/data -type f|xargs rm -f

./hellworld

实例

删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:

# rm  test.txt 
rm:是否删除 一般文件 "test.txt"? y  
# rm  homework  
rm: 无法删除目录"homework": 是一个目录  
# rm  -r  homework  
rm:是否删除 目录 "homework"? y 

删除当前目录下的所有文件及目录,命令行为:

rm  -r  *

文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。

 

gcc test_warning.c –o test_warning

Linux rm命令

Linux rm命令用于删除一个文件或者目录。

  find /root/data -type f -exec rm -f {} ;

如果我们想执行下一步的编译过程,可以继续使用GCC的-x <language type>选项,该选项用于显示指定文件的后缀名(而不是让编译器根据后缀来自行判断)。我们比较常用的language type有如下几种,(如果读者想获得更为完整参数说名,请参考GCC manual):

find*****  查找

当然,为每一种程序写一个config显然不是一个好办法,目前新的开发包都使用pkg-config这个脚本来生成链接参数。你可以使用pkg-config –list-all查看pkg-config支持的所有链接参数

    find /oldboy -maxdepth 1 -type d !-name "oldboy"

该选项用来指定CPU的类型,常用的有i386 / i486 / i586 / pentium-mmx / i686 / pentium2 / pentium3 / pentium-m / pentium4 / prescott / k6 / athlon / athlon-4 / k8等等,读者可以根据自己的情况进行指定。

  -mtime        修改时间

执行下面的命令:gcc –O –Wuninitialized test_warning.c –o test_warning

  -type          按文件类型查找,

l         assembler assembler-with-cpp

  -name            按照名字查找,查找的内容最好用双引 号括起来,!取反。 -a(and)并且,-O(or)

在这一部分的最后,我们对编译时用到的GCC常用命令做一个简要的总结

  -maxdepth       数字 查找深度

Emacs

说明

 

l         c c-header c-cpp-output

执行下面的命令:gcc –pedantic test_warning.c –o test_warning

 

    当程序出错的时候,我们可以在Visual Studio中轻松的进行调试,而在Linux中,一旦出现Segmentation Fault,似乎我们除了用眼睛去看代码就没有更好的选择了,其实情况不然,用GCC向程序加入一些适当的调试信息,我们可以利用GDB去调试程序。在这里,我们介绍最为常用的-g和-ggdb选项。

gcc –S helloworld.cpp –o hellowrld.S

该选项用于指定浮点运算单元的类型。包括

-x <language type>

-E

我们可以利用上面的-x和-c / –S / –E的组合来控制GCC的整个编译过程,其中-x用于告诉GCC我们从哪里开始,而-c / -S / -E用来告诉GCC在那里结束。

很简单不是吗?但是学过计算机的朋友都应该知道,程序的编译过程要分为下图所示的过程而GCC的强大之处就在于它允许你在上面所示的任何一个过程中停下来查看中间结果,并对其加以控制。

    最后要说明的是,上面这两个选项都可以接受一个输出调试信息的级别,默认的级别是2。如果你指定1级(-g1),那么GCC会生成最少的调试信息,这包括函数和全局变量的描述信息,但是对于局部变量和行号等信息,在这个级别是不会输出的。另外一个级别是3级(-g3),在这一级别上,GCC会为程序中的所有宏定义和符号生成调试信息。

首先来看代码优化,从代码的整体优化上,GCC提供了下面的选项

gcc helloworld.c –o helloworld

在这部分的最后,我们来谈一谈关于构建软件时链接参数的设定问题。在上面的第5部分我们已经提到了,函数库的使用是需要-L和-l一起配合来使用的,但实际上,往往一个像样的程序需要很多库的支持,例如,如果你需要编写一个GTK程序,我们需要下面的链接参数:

显示指定输入文件的格式

 

首先,我们不使用任何警告设施编译上面的程序

通过Helloworld的编译熟悉GCC的基本使用方法

sse,387

    该选项使得GCC把double / long double / long long类型的变量在4字节或2字节地址上对齐,

对于上面所有的选项,你都可以把它们和-Werror选项一起使用,这样就可以把所有的警告都变成错误。另外,如果你只是想对代码进行检查而并不执行编译的话,可使用-fsyntax-only选项,像下面的命令这样

 1 /* test_warning.c We use this file to check the warning facilities provided by GCC*/
 2 
 3 #include <stdio.h>
 4 #include <stdlib.h>
 5 
 6 
 7 void main() {        /* main should return int*/
 8 
 9     int a, b;
10 
11     long long l = 2.2; /* long long type is GNU extension, not standard ANSI / ISO type*/
12 
13     miss_decl();    /* We call an undeclared function*/
14 
15     if (a = 0)       /* May be we want == here instead of =*/
16 
17         printf (“a really equals to 0?/n”);
18 
19     if (b != 0)      /* We used uninitialized variables*/
20 
21         /* %d and “We should put b here” don’t match*/
22 
23 printf(“We make a mistake again! b = %d/n”, “We should put b here”);
24 
25 };
26 
27 
28 void miss_decl() {
29 
30     /* /* This type of annotation is prohibited*/
31 
32     printf(“We should put the declaration before it’s been used!/n”);
33 
34 }

这个选项是专门用来优化代码尺寸的,-Os打开了所有-O2级别中不会显著增长代码尺寸的优化选项

对于我们编写的任和一个程序,没有库函数的支持是不可想象的,而当我们要使用的头文件和函数库不在GCC默认的搜索路径下的时候(例如OpenGL、Qt、KDE、Boost等),我们就需要手工来告诉GCC他们的位置。

 

上面我们简单介绍了GCC的常用命令行选项,其实GCC的功能比上面提到的那些要丰富得多,GCC对代码的警告、优化、调试等方面提供了丰富的支持,下面我们就从一些例子来看看GCC提供的这些功能。

使用名为lib<lib name>.so的程序库

在这一级别GCC将会提供所有支持的优化,但这其中并不包括以空间换时间的优化手段,例如编译器不会使用循环展开和函数内联。和-O相比,该选项进一步加快了编译时间和生成代码的性能。

    如果你想用GDB来调试程序,那么你可以使用-ggdb来让GCC为GDB生成更为丰富的调试信息,但是,此时你就不能用其他的调试器来进行调试了。

就会看到这个程序的输出了

gcc helloworld.o –o helloworld

另外,我们还可以使用GCC的-c选项来编译和汇编源文件而不链接,此时-o指定的输出文件就是编译后的目标文件名


<输出结果>

Eclipse

使用标准的数学协处理器

-S

今天偶然看到这篇文章,做个入门了解还是不错的。

 

下面是helloworld.cpp的一部分的内容,我们看到,文件已经包含了stdio.h中的内容。

 

执行下面的命令:gcc -Wimplicit-function-declaration test_warning.c –o test_warning

执行下面的命令:gcc –w test_warning.c –o test_warnin

基本上来说,我们常用的一些警告选项就是这些,而其中-Wall更是我们极为常用的功能。

本文由澳门新葡亰手机版发布于操作系统,转载请注明出处:Linux应用开发入门

上一篇:云主机搭建Kubernetes,zabbix主机自动注册澳门新葡 下一篇:zabbix自动发现监控mysql
猜你喜欢
热门排行
精彩图文