仓酷云

标题: 来谈谈:Linux平台下关于GCC编译及利用的办法 [打印本页]

作者: 老尸    时间: 2015-1-16 16:03
标题: 来谈谈:Linux平台下关于GCC编译及利用的办法
常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基的。
编译:
第一步、是举行预编译,利用-E参数可让GCC在预处置停止后中断编译历程:
gcc-Ehello.c-ohello.i
预处置的宏界说拔出到hello.i中
第二步、是将hello.i编译为方针代码,这能够经由过程利用-c参数来完成:
gcc-chello.i-ohello.o
也能够经由过程源文件间接天生
gcc-chello.c
第三步、是将天生的方针文件链接成可实行文件:
gcchello.o-ohello
也能够经由过程源文件间接天生
gcc-ohellohello.c
告诫:
1、-pedantic选项,那末利用了扩大语法的中央将发生响应的告诫信息
2、-Wall利用它可以使GCC发生尽量多的告诫信息
3、-Werror,它请求GCC将一切的告诫当做毛病举行处置
库依附:
1、Linux下的年夜多半函数都默许:
头文件放到/usr/include/目次下
而库文件则放到/usr/lib/目次下
2、GCC在编译时必需有本人的举措来查找所必要的头文件和库文件。
-I选项能够向GCC的头文件搜刮路径中增加新的目次。
比方,假如在/home/xiaowp/include/目次下有编译时所必要的头文件,为了让GCC可以顺遂地找到它们,就能够利用-I选项:
gcc-otesttest.c-I/home/xiaowp/include
-L选项向GCC的库文件搜刮路径中增加新的目次
比方,假如在/home/xiaowp/lib/目次下有链接时所必要的库文件libfoo.so,为了让GCC可以顺遂地找到它,可使用上面的命令
gcc-otesttest.c-L/home/xiaowp/lib-lfoo
值得好好注释一下的是-l选项,它唆使GCC往毗连库文件libfoo.so.
Linux下的库文件在定名时有一个商定,那就是应当以lib三个字母开首,因为一切的库文件都遵守了一样的标准,因而在用-l选项指定链接的库文件名时能够省往lib三个字母,也就是说GCC在对-lfoo举行处置时,会主动往链接名为libfoo.so的文件。
-static选项,强迫利用静态链接库
假如在/home/xiaowp/lib/目次下有链接时所必要的库文件libfoo.so和libfoo.a
为了让GCC在链接时只用到静态链接库,可使用上面的命令:
gcc-otesttest.c-L/home/xiaowp/lib-static-lfoo
选项-O能够告知GCC同时减小代码的长度和实行工夫,其效果等价于-O1.
在这一级别上可以举行的优化范例固然取决于方针处置器,但一样平常城市包含线程跳转(ThreadJump)和提早退栈(DeferredStackPops)两种优化。
选项-O2告知GCC除完成一切-O1级其余优化以外,同时还要举行一些分外的调剂事情,如处置器指令调剂等。
选项-O3则除完成一切-O2级其余优化以外,还包含轮回睁开和别的一些与处置器特征相干的优化事情。
一般来讲,数字越年夜优化的品级越高,同时也就意味着程序的运转速率越快。
很多Linux程序员都喜好利用-O2选项,由于它在优化长度、编译工夫和代码巨细之间,获得了一个对照幻想的均衡点。
time./test检察程序实行工夫
优化固然可以给程序带来更好的实行功能,但在以下一些场所中应当制止优化代码:
程序开辟的时分优化品级越高,损耗在编译上的工夫就越长,因而在开辟的时分最好不要利用优化选项,只要到软件刊行或开辟停止的时分,才思索对终极天生的代码举行优化。
资本受限的时分一些优化选项会增添可实行代码的体积,假如程序在运转时可以请求到的内存资本十分严重(如一些及时嵌进式设备),那就不要对代码举行优化,由于由这带来的负面影响大概会发生十分严峻的成果。
跟踪调试的时分在对代码举行优化的时分,某些代码大概会被删除或改写,大概为了获得更佳的功能而举行重组,从而使跟踪和调试变得非常坚苦。
减速:
利用管道取代编译中一时文件,
-pipe减速编译
gcc-pipefoo.c-ofoo
GCC经常使用选项
-c关照GCC作废链接步骤,即编译源码并在最初天生方针文件;
-Dmacro界说指定的宏,使它可以经由过程源码中的#ifdef举行查验;
-E不经由编译预处置程序的输入而保送至尺度输入;
-g3取得有关调试程序的具体信息,它不克不及与-o选项团结利用;
-Idirectory在包括文件搜刮路径的出发点处增加指定目次;
-llibrary提醒链接程序在创立终极可实行文件时包括指定的库;
-O、-O2、-O3将优化形态翻开,该选项不克不及与-g选项团结利用;
-S请求编译程序天生来自源代码的汇编程序输入;
-v启动一切警报;
-Wall在产生警报时作废编译操纵,行将警报看做是毛病;
-Werror在产生警报时作废编译操纵,即把报警看成是毛病;
-w克制一切的报警

</p>
安装和登录命令:login、shutdown、halt、reboot、mount、umount、chsh
作者: 精灵巫婆    时间: 2015-1-18 16:27
另外Linux上也有很多的应用软件,安装运行了这些软件后,你就可以在Linux上编辑文档、图?片,玩游戏、上网、播放多媒体文件等。
作者: 蒙在股里    时间: 2015-1-24 16:31
发问的时候一定要注意到某些礼节。因为Linux社区是一个松散的组织、也不承担回复每个帖子的义务。它不是技术支持。
作者: 灵魂腐蚀    时间: 2015-2-2 11:04
熟读写基础知识,学得会不如学得牢。
作者: 小妖女    时间: 2015-2-23 01:15
在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。
作者: 若天明    时间: 2015-3-7 06:20
就这样,我们一边上OS理论课,一边上这个实验,这样挺互补的,老师讲课,一步一步地布置任务
作者: 不帅    时间: 2015-3-14 14:53
众所周知,目前windows操作系统是主流,在以后相当长的时间内不会有太大的改变,其方便友好的图形界面吸引了众多的用户。
作者: 飘灵儿    时间: 2015-3-21 11:10
随着IT从业人员越来越多,理论上会有更多的人使用Linux,可以肯定,Linux在以后这多时间不会消失。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2