当前位置:首页 » 编程软件 » gcc默认优化编译

gcc默认优化编译

发布时间: 2022-02-12 20:55:34

linux下gcc 编译器是怎么提高程序性能的怎么根据gcc优化结果优化代码

你的程序可能太短,看不出区别来,你比对一下她们生成的汇编码就知道了,优化可能O1就优化完了,你用O0对比O1的汇编结果,肯定不同的,从中能看出它到底优化了哪个地方

㈡ gcc 编译优化做了哪些事

用过gcc的都应该知道编译时候的-O选项吧。它就是负责编译优化。
下面列出它的说明:
-O
-O1 Optimize. Optimizing compilation takes somewhat more time, and a lot more memory for a
large function.
With -O, the compiler tries to rece code size and execution time, without performing any
optimizations that take a great deal of compilation time.
-O turns on the following optimization flags: -fdefer-pop -fdelayed-branch
-fguess-branch-probability -fcprop-registers -floop-optimize -fif-conversion -fif-conver-
sion2 -ftree-ccp -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-ter -ftree-lrs
-ftree-sra -ftree-rename -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants

㈢ (Linux)gcc进行优化编译的参数是什么

将file.c文件编译产生可执行文件myprog(-o选项),并且在编译的时候,生成调试信息(-g信息)。让gdb调试器可以调试该程序。
gcc是编译器程序名字
-o是可执行文件名字输出参数
-g是插入调试信息参数
当然是调试可执行文件myprog

㈣ gcc默认编译规范

我知道我的回答很不负责任,但是我实在不想去翻gcc的在线文档……sry,lz。

http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/

㈤ GCC编译器加上优化选项会不会自动去掉没用到的函数

实际上在编译之后还要链接,才能生成最终的目标代码。
在链接的过程中,只有用到的函数才会被链接进目标代码。也就是说,没有用到的函数不会被链接到目标代码,也不会增大目标代码的体积。

㈥ GCC编译,怎样禁止优化某一段语句或者改成汇

实际上在编译之后还要链接,才能生成最终的目标代码。 在链接的过程中,只有用到的函数才会被链接进目标代码。也就是说,没有用到的函数不会被链接到目标代码,也不会增大目标代码的体积。

㈦ 怎样修改gcc的默认优化参数

不是release优化的问题。如果是直接运行的话,mingwm10.dll、libgcc_s_dw2-1.dll、qtcore4.dll、qtgui4.dll,还有相应的你用到的库都要放在运行目录下,用dependency walker可以看到dll依赖情况。
然后用到的插件比如qmltooling、imageformats等目录也需要拷到运行目录中,这个用工具看不到依赖,只能全拷然后用排除法,有经验之后代码里哪些用到了就知道了。

出现runtime library错误的最大可能性就是运行目录下的插件不完整。

另外有一种解决方法就是把qt改成静态链接,编译进exe,商业版允许这样做,lgpl版的话如果不是自用就有法律风险。

㈧ 如何在configure时,将编译参数传入,改变默认的编译器gcc成arm

按照INSTALL中的介绍,也是常用的方法,在configure的时候,加上–host=arm-linux,结果没有实现我们要的效果,没有将编译器从默认的
gcc改成arm-linux-gcc,编译器还是用的默认的gcc:
[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-O2 ./configure –host=arm-linux
loading cache ./config.cache
………………..
checking for gcc… (cached) gcc
checking whether the C compiler (gcc -O2 ) works… yes
checking whether the C compiler (gcc -O2 ) is a cross-compiler… no
………………..
后来经过多次尝试,最后受默认的
CFLAGS=-O2 ./configure
进行配置所启发,想到,是否可以将CC参数传入到configure中,
结果证实,如果没有自己的cache-file,即时加了对的CC参数,也还是无法传入:
[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-O2 CC=arm-linux-gcc ./configure –host=arm-linux
loading cache ./config.cache
………………..
checking for gcc… (cached) gcc
checking whether the C compiler (gcc -O2 ) works… yes
checking whether the C compiler (gcc -O2 ) is a cross-compiler… no
checking whether we are using GNU C… (cached) yes
………………..
而且,如果CC参数放在configure后面:
./configure CC=arm-linux-gcc
则不能识别:
[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-O2 ./configure CC=arm-linux-gcc
configure: warning: CC=arm-linux-gcc: invalid host type
………………..
参数传递必须像
CFLAGS=-O2 ./configure
一样,将参数设置放在configure的前面:
CC=arm-linux-gcc./configure
才能识别的。
必须要自己制定自己的cache-file 然后用./configure进行新配置,加上CC参数,才会即时生效,编译器才可以变成我们要的arm-linux-gcc:
[crifan@localhost lrzsz-0.12.20]$ CC=arm-linux-gcc ./configure –cache-file=cache_file_0 –prefix=/usr/crifan/lrzsz
………………..
checking for gcc… arm-linux-gcc
checking whether the C compiler (arm-linux-gcc ) works… yes
checking whether the C compiler (arm-linux-gcc ) is a cross-compiler… yes
checking whether we are using GNU C… yes
………………..
否则,就无法将我们的CC参数传入了:
[crifan@localhost lrzsz-0.12.20]$ CC=arm-linux-gcc ./configure –prefix=/usr/crifan/lrzsz
………………..
checking for gcc… (cached) gcc
checking whether the C compiler (gcc ) works… yes
checking whether the C compiler (gcc ) is a cross-compiler… no
checking whether we are using GNU C… (cached) yes
………………..
[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-O2 CC=arm-linux-gcc ./configure –cache-file=cache_file_0
loading cache cache_file_0
………………..
checking for gcc… arm-linux-gcc
checking whether the C compiler (arm-linux-gcc -O2 ) works… yes
checking whether the C compiler (arm-linux-gcc -O2 ) is a cross-compiler… yes
checking whether we are using GNU C… yes
最好此处在加上–prefix=/usr/crifan/lrzsz,表示具体安装到哪里
[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-O2 CC=arm-linux-gcc ./configure –cache-file=cache_file_0 –prefix=/usr/crifan/lrzsz
loading cache cache_file_0
………………..
checking for gcc… arm-linux-gcc
checking whether the C compiler (arm-linux-gcc -O2 ) works… yes
checking whether the C compiler (arm-linux-gcc -O2 ) is a cross-compiler… yes
checking whether we are using GNU C… yes
………………..
其中,/usr/crifan/lrzsz是已经建立好的,已经存在的文件夹,上面这样表示编译后,
将生成的可执行文件安装拷贝到那个目录.

㈨ 怎样修改GCC的默认优化选项

一般编译过程会显示这些参数的.
你仔细看一下.

如果有makefile
可以直接查看

可能在CFLAGS 后面.

热点内容
我的世界如何把材质包放进服务器 发布:2025-01-12 16:11:14 浏览:56
使用hmailserver搭建邮件服务器 发布:2025-01-12 16:05:43 浏览:809
ps3游戏下载解压 发布:2025-01-12 15:55:46 浏览:596
视频点播服务器搭建局域网 发布:2025-01-12 15:46:44 浏览:88
unit长安豪华版有哪些配置 发布:2025-01-12 15:45:05 浏览:85
数据库表的分区 发布:2025-01-12 15:39:29 浏览:369
u点家庭服务器网关设置有什么用 发布:2025-01-12 15:33:15 浏览:153
王者归来java 发布:2025-01-12 15:27:13 浏览:68
安卓手机为什么卡又发热 发布:2025-01-12 15:23:18 浏览:571
如何验证root密码是否正确 发布:2025-01-12 15:23:15 浏览:592