首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

浅谈Linux环境gcc优化级别

代码优化可以说是一个非常复杂而又非常重要问题,以笔者多年linux c开发经验来说优化通常分为两个方面,一是人为优化,也就是基于编程经验采用更简易数据结构函数等来降低编译器负担,二是采用系统自带优化模式...,也就是gcc – o系列,下面我将简述一各级优化过程以及实现。...gcc – o1 首先o1上面还有一个o0,那个是不提供任何优化,项目中几乎不会使用,而o1使用就非常广泛了,o1是最基本优化,主要对代码分支,表达式,常量来进行优化,编译器会在较短时间将代码变得更加短小...gcc – o2 这个优化级别是o1进阶,在上一级基础上会进行更严格细分,最重要是加入了寄存器使用。...总结 以上就是本文关于浅谈Linux环境gcc优化级别的全部内容,希望对大家有所帮助。欢迎大家继续参阅本站其他相关专题,感谢朋友们对ZaLou.Cn网站支持。

1.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

linux使用gcc编译运行C程序

gcc(GNU Compiler Collection)是Linux最常用C语言编译器,是GNU项目中符合ANSI C标准编译系统,能够编译用C、C++和Object C等语言编写程序。 ...在linux系统中,常见使用方法有两种,如下: gcc -o out in1 in2 //gcc编译以及链接(对in1文件和in2文件进行编译生成...out.o文件,“-c”:表示只生成*.o文件) 若在arm板里运行,就需要在linux系统中使用arm-linux-gcc交叉编译才行: arm-linux-gcc -o out in1...in2 //gcc编译以及链接(对in1文件和in2文件进行编译生成out.bin文件,“-o”:表示生成可执行文件) arm-linux-gcc -c...vi hello.c                          //编辑hello.c 内容如下: gcc -o hello  hello.c  a.c               //gcc

7.3K90

linux使用gcc编译运行C程序

gcc(GNU Compiler Collection)是Linux最常用C语言编译器,是GNU项目中符合ANSI C标准编译系统,能够编译用C、C++和Object C等语言编写程序。 ...在linux系统中,常见使用方法有两种,如下: gcc -o out in1 in2 //gcc编译以及链接(对in1文件和in2文件进行编译生成...out.bin文件,“-o”:表示生成可执行文件) gcc -c out in1 in2 // gcc编译不链接(对in1文件和in2文件文件进行编译生成...out.o文件,“-c”:表示只生成*.o文件) 若在arm板里运行,就需要在linux系统中使用arm-linux-gcc交叉编译才行: arm-linux-gcc -o out in1...in2 //gcc编译以及链接(对in1文件和in2文件进行编译生成out.bin文件,“-o”:表示生成可执行文件) arm-linux-gcc -c

6.1K70

Linuxgcc使用

底行模式输入:vs+文件名即可打开多个文件 安装gcc:sudo yum -y install gcc b.外部定义宏参数 gcc test.c -DSHOW//在外部给test.c定义宏SHOW...你家长十分开明,他们把你在网吧经常用那台电脑买回来放到了你房间。此后你再有上网需要时候就不必再跑到网吧了,而是直接在房间里就可以使用。...那么你家长从网吧买回那个你经常使用电脑让你以后不用再去网吧了,这个过程就相当于静态链接。所谓静态链接就是每次我需要使用库中函数时,直接从库中拷贝一份。...:前缀为lib,后缀为.a libc.so.6去掉前缀lib和后缀.so以及版本号.6,最后只剩下c,所以这个是C标准库 指定静态链接 当我不指定时Linux将自动采用动态链接,如果要使用动态链接就要在编译生成可执行文件时加上...3.补充一点 在Windows动态库是.lld,静态库是.lib

3K00

linuxClang和gcc区别

对于 IDE 而言,代码补全、重构是重要功能,然而如果没有底层支持,只使用 tags 分析或是正则表达式匹配是很难达成, clang正好充当了这一角色。...这样, editor 工具可以使用和 compiler 一样 parser 来完成 edit-time 语法检查 。 而 gcc 就没法很方便地做到这一点 。...尤其是在比较极端情况。 两年多前曾经写过一个Scheme解释器,词法分析和语法解析部分大约2000行,用是Boost.Spirit——一个重度依赖C++模版元编程框架。...链接产物超过200M 编译错误极其难以理解:编译错误经常长达几十K,基本不可读,最要命是编译错误经常会长到被g++截断,看不到真正出错位置,基本上只能靠裸看代码来调试 这里先不论我使用Spirit方式是不是有问题...至少我当前在Ubuntu用clang 3.0编译出二进制文件已经可以顺利用gdb调试了。 最后一点,其他同学也有讲到,就是Clang采用是BSD协议。

5.2K10

windows使用gcc

介绍: MinGw 是 Minimal GNU on Windows 缩写,允许在 GNU/Linux 和 Windows 平台生成本地 Windows 程序而不需要第三方运行时库。...GCC初衷是为GNU操作系统专门编写一款编译器。GNU系统是彻底自由软件。此处,“自由”含义是它尊重用户自由。...然后就是运行安装什么了,放目录的话要记住,我放在D盘,然后在bin目录下复制文件目录,开始配置环境变量 ?...将bin目录下路径放到path环境变量,保存确定退出即可 在开始菜单中,点击"运行",输入 cmd,打开命令行:输入 mingw-get,如果弹出 MinGw installation manager...此时,关闭 MinGw installation manager 窗口,否则接下来步骤会报错 在cmd中输入命令 mingw-get install gcc,等待一会,gcc 就安装成功了。

85520

linuxgcc使用方法_linux怎么用gcc编译

大家好,又见面了,我是你们朋友全栈君。 01. 命令概述 gcc命令使用GNU推出基于C/C++编译器,是开放源代码领域应用最广泛编译器,具有功能强大,编译代码支持性能优化等特点。...|params|target|warnings|[^] {joined|separate|undocumented}}[,…] 显示特定类型命令行选项 (使用‘-v –help’显示子进程命令行参数...-pipe 使用管道代替临时文件 -time 为每个子进程计时 -specs= 用 内容覆盖内建 specs 文件 -std= 指定输入源文件遵循标准 –sysroot= 将 作为头文件和库文件根目录...4.7 编译时指定优化级别 [deng@localhost bak]$ gcc -O1 test.c -o test [deng@localhost bak]$ 使用编译优化级别1编译程序。...bak]$ gcc test.o testfun.o -o test [deng@localhost bak]$ 到此这篇关于Linux gcc命令具体使用文章就介绍到这了,更多相关Linux gcc

6.7K20

Linux gcc命令具体使用

命令概述 gcc命令使用GNU推出基于C/C++编译器,是开放源代码领域应用最广泛编译器,具有功能强大,编译代码支持性能优化等特点。...显示特定类型命令行选项 (使用‘-v --help'显示子进程命令行参数) --version 显示编译器版本信息 -dumpspecs 显示所有内建 spec 字符串...组件相对路径时不生成规范化 前缀 -pipe 使用管道代替临时文件 -time 为每个子进程计时 -specs= 用 内容覆盖内建...4.7 编译时指定优化级别 [deng@localhost bak]$ gcc -O1 test.c -o test [deng@localhost bak]$ 使用编译优化级别1编译程序。...bak]$ gcc test.o testfun.o -o test [deng@localhost bak]$ 到此这篇关于Linux gcc命令具体使用文章就介绍到这了,更多相关Linux

2.6K43

Linux环境ssh安装及使用

前言:SSH(全称 Secure Shell)是一种加密网络协议。使用该协议数据将被加密,即使在传输中间数据泄漏,也可以确保没有人能读取出有用信息。SSH 是基于客户-服务模式。...当你想安全远程连接到主机,可中间网络(比如因特网)并不安全,通常这种情况就会使用 SSH。...在这个情况,任何一端死掉后, SSH 可以立刻知道!而不会有僵尸程序发生!...不要使用 ---- HostbasedAuthentication no 这个项目与上面的项目类似,不过是给 version 2 使用!...---- ****关于使用者抵挡设定项目**** DenyUsers *        设定受抵挡使用者名称,如果是全部使用者,那就是全部挡吧!若是部分使用者,可以将该账号填入!例如下列!

3.1K30

windowsgcc安装和使用(更新)

这个错误之前有个读者反馈过,但是没用到也没碰到过,所以也没有去试一。 ? 读者碰到错误(被我敷衍过去了) ? 今天重新安装一遍解决了这个问题。这里重新更新一记录。...选择好安装位置后,点击"运行",continue等,注意记住安装目录,如 D:\MinGw,下面修改环境变量时还会用到。 ?...在里面找到mingw32-gcc.bin, mingw32-gcc-g++.bin, 以及mingw32-gdb.bin 第一个是c语言文件编译器,第二个是c++,第三个是用来调试编译后文件。...如果中间出现报错,一般都是服务器终端导致,重新来一次就可以了,会把我们角色重新安装。 ? 3.修改环境变量: 安装好之后,是不能直接使用,还需添加到环境变量。 ?...(二)使用 4.在开始菜单中,点击"运行",输入 cmd,打开命令行:输入 gcc,没有说外部命令,说明安装正常。 然后在桌面创建一个hello.c测试程序。 ? ?

42.7K42

Linux】 开始使用 gcc 吧!!!

Linux 1 认识gcc 我们在windows环境和macos环境里都有功能强大集成开发环境(IDE)供我们使用 ,但是在Linux中我们如何编译运行我们代码呢?...这里就需要使用gcc / g++ 了。...效果如下: 我们接下来再来看具体每一步操作如何实现 3.1 预处理 预处理 预处理指令: gcc -E 要预处理文件 [选项] [目标文件] 一般我们得到预处理文件使用.i后缀 我们可以验证一预处理是不是完成去注释等操作...答案是: 系统把这些函数实现都被做到名为 libc.so.6 库文件中去了,在没有特别指定时,gcc 会到系统默认搜索路径“/usr/lib”进行查找,也就是链接到 libc.so.6 库函数中去...完成了链接之后,gcc 就可以生成可执行文件 我们看看使用动态库和静态库区别: 使用静态库可执行文件比使用动态库文件大了近100倍 这就是因为静态库把库加到了可执行文件里。

11410

Linux学习_005_Linux使用命令安装gcc、g++、gdb

注意:本博文在CentOS7.5版本上进行了测试,不同版本可能会出现差异。 以下均为root用户下操作,安装时请确保你Linux可以上网。...Linux使用命令安装gcc、g++、gdb 使用gcc用来编译C程序 使用g++用来编译C++程序 使用gdb来调试程序 1、gcc安装 现在下载CentOS版本几乎都会自带gcc和vim,所以我们需要只是...检查你Linux是否有gcc: [root@itheima ~]# which gcc /usr/bin/which: no gcc in (/usr/local/sbin:/usr/local/bin...:/usr/sbin:/usr/bin:/root/bin) 说明没有,使用以下命令安装gcc: [root@itheima ~]# yum install gcc 安装完成后,再次检查,就会出现该命令路径...: [root@itheima ~]# which gcc       /usr/bin/gcc 2、g++安装 先检查是否有g++: [root@itheima ~]# which g++ /usr

4.5K31

Linux使用yum安装LNMP环境

如何使用yum搭建有需求LNMP环境 本人使用是centos7系统,就以centos7系统搭建为例 Nginx安装 下载/安装步骤:http://nginx.org/en/linux_packages.html..., 是否包含remi开头, 或者epel开头文件 cd /etc/yum.repos.d 删除以remi开头, 或者epel开头文件 rm -f epel* remi* 查看是否安装yum...相关软件包 yum --enablerepo=remi install php php-pdo php-mysql php-fpm php-cli php-common MySQL安装 MySQL 使用指定...yum源安装链接: https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html 创建文件:vi /etc/yum.repos.d..., 执行yum install命令 如果下载软件包官网找不到, 第一种解决方案: 找第三方源(remi源), 继续使用yum install; 第二种解决方案: 找下载软件包官网提供其他下载安装方式

2.8K30
领券