1.gcc基本规则
2.GCC 源码编译安装
3.gcc和g++区别
4.C语言中的码名源程序文件和目标文件的扩展名分别是
5.gcc的常用编译命令
gcc基本规则
gcc遵循一系列约定规则以处理不同的源代码文件类型:C语言源代码文件通常使用".c"作为后缀名。
".a"类型的码名文件是目标文件组成的档案库,用于程序链接。码名
C++源代码文件可以是码名".C"、".cc"或".cxx",码名这些文件需要经过预处理处理。码名c 点名器 源码
".h"文件是码名程序中引用的头文件,包含了函数声明和常量定义。码名
".i"后缀的码名文件表示C源代码,但不进行预处理。码名
".ii"后缀的码名文件是C++源代码,同样不执行预处理。码名
".m"文件是码名Objective-C的源代码文件,专用于Objective-C程序。码名
".o"文件是码名编译后的目标文件,是程序执行的关键中间产物。
".s"和".S"都是汇编语言源代码,区别在于".S"文件已经过预编译。
这些后缀规则有助于gcc正确识别和处理各种编程语言的源代码,确保编译过程的顺利进行。
扩展资料
GCC(GNU Compiler Collection,博众 源码 下载GNU编译器集合)是一套由GNU工程开发的支持多种编程语言的编译器。GCC是自由软件发展过程中的著名例子,由自由软件基金会以GPL协议发布。GCC是大多数类Unix操作系统(如Linux、BSD、Mac OS X等)的标准的编译器,GCC同样适用于微软的Windows。GCC支持多种计算机体系芯片,如x、ARM,并已移植到其他多种硬件平台。GCC原名为GNU C编译器(GNU C Compiler),因为它原本只能处理C语言。GCC很快地扩展,并支持处理C++。后来又扩展能够支持更多编程语言,如Fortran、Pascal、Objective-C、Java、永利国际 源码Ada、Go等。GCC 源码编译安装
前言
本文主要介绍如何在特定条件下,通过源码编译安装GCC(GNU Compiler Collection)4.8.5版本。在Linux环境下,特别是遇到较老工程代码和低版本GCC适配问题时,网络仓库不可用,可通过下载源码进行本地编译安装。文章总结了该过程的步骤,以期帮助读者解决类似需求。
Linux系统版本:SUSE Linux Enterprise Server SP5 (aarch) - Kernel \r (\l)
GCC版本:gcc-4.8.5
步骤如下:
1,源码下载
直接在Linux终端执行:wget ftp.gnu.org/gnu/gcc/gcc...
或手动下载:ftp://gcc.gnu.org/pub/gcc/infrastructure
选取对应的gcc版本下载。
2,解压并进入目录
解压下载的tar包:tar -jxvf gcc-4.8.5.tar.bz2
进入解压后的目录:cd gcc-4.8.5
3,配置依赖库
联网情况下:cd gcc-4.8.5/
./contrib/download_prerequisites
无法联网时,手动下载依赖库(如mpfr、gmp、mpc)并上传到指定目录,然后分别解压、重命名并链接。萝莉巴巴源码
4,创建编译存放目录
在gcc-4.8.5目录下执行:mkdir gcc-build-4.8.5
5,生成Makefile文件
cd gcc-build-4.8.5
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
推荐配置时,根据环境调整参数,如X_环境下的`--disable-libsanitizer`。
6,执行编译
make(可能耗时较长)
解决可能出现的问题,如libc_name_p和struct ucontext uc,通过参考gcc.gnu.org/git或直接覆盖相关文件。
7,安装GCC
在gcc-build-4.8.5目录下执行:make install
安装完成后,可直接解压并安装。
8,配置环境变量
执行命令:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/gcc-4.8.5/mpc:/root/gcc-4.8.5/gmp:/root/gcc-4.8.5/mpfr
确保路径一致,执行 source /etc/profile 使环境变量生效。
9,检查安装情况
通过`gcc -v`和`g++ -v`验证GCC版本。
,库升级
遇到动态库未找到问题时,需升级gcc库,苹果源码不能升级通过查找和替换最新库文件解决。
,卸载系统自带的gcc
以root用户执行:rpm -qa |grep gcc | xargs rpm -e --nodeps
,修改ld.so.conf文件
编辑文件:vi /etc/ld.so.conf,在最下面添加实际路径,如/usr/local/lib和/usr/local/lib。
执行 ldconfig /etc/ld.so.conf。
,修改GCC链接
确保GCC及其相关工具的正确链接,使用`ll /usr/bin/gcc*`和`ll /usr/bin/g++*`检查链接结果。
至此,GCC源码编译安装流程完成,可满足特定环境下的GCC版本需求。
gcc和g++区别
基础知识:
了解GNU操作系统和GNU通用公共许可证(GPL),以及GCC(GNU编译器套件)。
GCC包含GNU C Compiler(gcc)和GNU C++ Compiler(g++),用于编译不同编程语言的源代码。
C源文件扩展名为.c,而C++源文件扩展名为.cpp。
C++是对C语言的增强,cpp代表C++。
编译流程分为四个阶段:
1. 预处理(cpp):展开头文件,替换宏,去除注释,生成.i文件。
2. 编译(ccl):将.c或.cpp文件转换为汇编代码.s文件。
3. 汇编(as):将.s文件转换为可执行的二进制文件.o。
4. 链接(ld):将目标文件与库文件链接,生成可执行程序。
gcc和g++在编译过程中存在差异:
1. 对于.c和.cpp文件,gcc分别作为C和C++文件编译。
2. g++统一将所有文件作为C++文件处理。
3. g++自动链接标准库STL,而gcc通常不会。
4. gcc在编译C文件时的预定义宏较少。
5. gcc编译cpp文件时,g++编译c和cpp文件时会额外添加一些宏。
6. gcc编译C++文件时需使用-lstdc++参数链接STL库,但两者的实现细节不同。
编译时注意事项:
确保正确处理cpp和c文件的命名差异,以免在编译链接阶段出现错误。
参考:
《深入理解计算机系统》第三版
C++菜鸟教程
GCC的gcc和g++区别 - samewang - 博客园
C语言中的源程序文件和目标文件的扩展名分别是
C语言源代码文件一般扩展名为.c,目标文件扩展名一般为.obj,生成的可执行文件扩展名一般为.exe。不同平台的C源代码扩展名都为.c,但目标文件扩展名不同,例如: 在Linux平台上,生成的可执行文件一般扩展为.out。
源文件:这是指由源程序和数据构成的文件。通常由终端或输入设备输入的源程序和数据所形成的文件都属于源文件。它通常是由 ASCII 码或汉字所组成的。
目标文件:这是指把源程序经过相应语言的编译程序编译过,但尚未经过链接程序链接的目标代码所构成的文件。它属于二进制文件。
可执行文件:这是指把编译后所产生的目标代码再经过链接程序链接后所形成的文件。
扩展资料:
源文件,目标文件,可执行文件的联系:
源文件就是用汇编语言或高级语言写出来的代码保存为文件,目标文件是指源文件经过编译程序产生的能被cpu直接识别二进制文件。将目标文件链接起来就成了可执行文件。
源代码与源文件:
源代码(也称源程序)是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令。 在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。
计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。在大多数情况下,源代码等于源文件。
百度百科-源文件
gcc的常用编译命令
gcc的常用编译命令: 常用编译命令概述: gcc是一个广泛使用的编译器,支持多种语言的编译,其中最常用的就是C语言。其基本命令包括编译、汇编、链接等步骤,还可以进行调试和优化。以下介绍gcc的一些常用编译命令。 常用编译命令详解: 1. gcc编译命令: `gcc [options] filename` 使用gcc命令进行编译,其中filename是源文件的名字。可以根据需要添加不同的编译选项,例如优化等级等。编译后的结果会生成一个可执行文件。例如:`gcc -o outputfile sourcefile.c`,这将生成一个名为outputfile的可执行文件。 2. 预处理命令: `-E`选项可以让gcc进行预处理操作,输出预处理后的源代码。例如:`gcc -E filename.c`,将输出预处理后的C语言代码。这主要用于查看宏替换后的代码以及包含的头文件内容等。 3. 汇编命令: `-S`选项可以让gcc输出汇编代码而不进行链接操作。例如:`gcc -S filename.c`,这将生成一个汇编语言文件。这对于理解程序的汇编指令和底层运行机制很有帮助。 4. 链接命令: 使用`-c`选项进行编译并输出目标文件,然后使用链接命令将目标文件转换为可执行文件。例如先执行`gcc -c filename.c`生成目标文件,再执行链接命令如`ld filename.o -o outputfile`生成可执行文件。也可以直接执行`gcc filename.c -o outputfile`一步到位完成编译和链接。 5. 调试与优化选项: 常用的调试选项有`-g`用于生成调试信息,可以在调试工具中使用;优化选项如`-O0`, `-O1`, `-O2`, `-O3`分别表示不同的优化级别,数字越大优化程度越高。例如:`gcc -O2 filename.c`进行二级优化编译。对于大型项目通常建议使用优化选项以提高程序性能。另外还有其他如警告处理、控制栈大小等选项,可以根据需求选择合适的参数。使用gcc时还可以通过帮助命令获取更多详细的编译选项和用法信息,例如在命令行中输入`gcc --help`可以查看详细的选项列表和用法说明。通过这些选项可以更好地控制编译过程和提高代码质量。2024-12-25 14:55
2024-12-25 14:20
2024-12-25 14:19
2024-12-25 13:38
2024-12-25 13:36
2024-12-25 13:21
2024-12-25 13:12
2024-12-25 12:47