本篇文章给大家谈谈源码分享网站g,以及源码网站源码对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
处理运行时性能的问题上,即使是最有才华的开发人员也会受编译器的支配——因为如果没有可靠的编译器工具链,就无法构建任何重要的东西。
?来源:linux.cn?作者:MargaretLewis?译者:Chao-zhiLiu?
(本文字数:6861,阅读时长大约:10分钟)
软件如果不能被电脑运行,那么它就是无用的。而在处理运行时(run-time)性能的问题上,即使是最有才华的开发人员也会受编译器的支配——因为如果没有可靠的编译器工具链,就无法构建任何重要的东西。GNU编译器集合(GNUCompilerCollection)(GCC)提供了一个健壮、成熟和高性能的工具,以帮助你充分发挥你代码的潜能。经过数十年成千上万人的开发,GCC成为了世界上最受尊敬的编译器之一。如果你在构建应用程序是没有使用GCC,那么你可能错过了最佳解决方案。
根据LLVM.org的说法,GCC是“如今事实上的标准开源编译器”[1],也是用来构建完整系统的基础——从内核开始。GCC支持超过60种硬件平台,包括ARM、Intel、AMD、IBMPOWER、SPARC、HPPA-RISC和IBMZ,以及各种操作环境,包括GNU、Linux、Windows、macOS、FreeBSD、NetBSD、OpenBSD、DragonFlyBSD、Solaris、AIX、HP-UX和RTEMS。它提供了高度兼容的C/C++编译器,并支持流行的C库,如GNUCLibrary(glibc)、Newlib、musl和各种BSD操作系统中包含的C库,以及Fortran、Ada和GO语言的前端。GCC还可以作为一个交叉编译器,可以为运行编译器的平台以外的其他平台创建可执行代码。GCC是紧密集成的GNU工具链的核心组件,由GNU项目产生,它包括glibc、Binutils和GNU调试器(GDB)。
“一直以来我最喜欢的GNU工具是GCC,即GNU编译器集合(GNUCompilerCollection)。在开发工具非常昂贵的时候,GCC是第二个GNU工具,也是使社区能够编写和构建所有其他工具的工具。这个工具一手改变了这个行业,导致了自由软件运动的诞生,因为一个好的、自由的编译器是一个社区软件的先决条件。”——RedHat开源和标准团队的DaveNeary。[2]
优化Linux
作为Linux内核源代码的默认编译器,GCC提供了可靠、稳定的性能以及正确构建内核所需的额外扩展。GCC是流行的Linux发行版的标准组件,如ArchLinux、CentOS、Debian、Fedora、openSUSE和Ubuntu这些发行版中,GCC通常用来编译支持系统的组件。这包括Linux使用的默认库(如libc、libm、libintl、libssh、libssl、libcrypto、libexpat、libpthread和ncurses),这些库依赖于GCC来提供可靠性和高性能,并且使应用程序和系统程序可以访问Linux内核功能。发行版中包含的许多应用程序包也是用GCC构建的,例如Python、Perl、Ruby、nginx、ApacheHTTP服务器、OpenStack、Docker和OpenShift。各个Linux发行版使用GCC构建的大量代码组成了内核、库和应用程序软件。对于openSUSE发行版,几乎100%的原生代码都是由GCC构建的,包括6135个源程序包、5705个共享库和38927个可执行文件。这相当于每周编译24540个源代码包。[3]
Linux发行版中包含的GCC的基本版本用于创建定义系统应用程序二进制接口(ApplicationBinaryInterface)(ABI)的内核和库。用户空间(Userspace)开发者可以选择下载GCC的最新稳定版本,以获得高级功能、性能优化和可用性改进。Linux发行版提供安装说明或预构建的工具链,用于部署最新版本的GCC以及其他GNU工具,这些工具有助于提高开发人员的工作效率和缩短部署时间。
优化互联网
GCC是嵌入式系统中被广泛采用的核心编译器之一,支持为日益增长的物联网设备开发软件。GCC提供了许多扩展功能,使其非常适合嵌入式系统软件开发,包括使用编译器的内建函数、gcccompat??https://opensource.com/article/18/9/happy-birthday-gnu??由SUSE基于最近的构建统计提供的信息。在openSUSE中还有其他不生成可执行镜像的源码包,这些不包括在统计中。??https://community.arm.com/tools/b/blog/posts/gnu-toolchain-performance-in-2018??https://www.arm.com/products/processors/cortex-m??https://gcc.gnu.org/projects/cxx-status.htmlFactoidTeamSizeVeryLarge??https://www.gnu.org/licenses/gcc-exception-3.1-faq.en.html??
via:www.linux.com
作者:MargaretLewis选题:lujun9972译者:Chao-zhi校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出
点击“了解更多”可访问文内链接
好了,文章到此结束,希望可以帮助到大家。