gcc,gfortran和g++的编译原理的简单介绍

gcc,gfortran和g++的和编译原理的简单介绍

gcc,g++的介绍

GCC:最初的全名:GNU C Compiler.随着GCC支持的语言越来越多,它的名称就变成了GNU Compiler Collection。

gcc是GCC中的GUN C Compiler(C 编译器)

g++是GCC中的GUN C++ Compiler(C++编译器)

gfortran是GCC中的fortran编译器.

对于 .c和.cpp文件,gcc分别当做c和cpp文件编译(cpp的语法规则比c的更强一些)

对于 .c和.cpp文件,g++则统一当做cpp文件编译.

编译过程的介绍

参见:c语言编译过程详解,预处理,编译,汇编,链接(干货满满

预处理, 展开头文件/宏替换/去掉注释/条件编译 (test.i main .i)

编译, 检查语法,生成汇编 ( test.s main .s)

汇编, 汇编代码转换机器码 (test.o main.o)

链接 链接到一起生成可执行程序 a.out

作为用户一般只需要关心编译阶段和链接阶段,其中编译阶段检查语法,检查内存,检查指针.链接阶段是将库的内容添加到可执行文件中.

gcc命令行编译介绍
编译过程

参见gcc的使用简介与命令行参数说明

gcc -c					只编译,不链接成可执行文件,生成.o为后缀的目标文件
gcc -o 输出文件 源文件	生成可执行文件,如果输出文件名为指定,默认a.out
gcc -g					产生符号调试工具
gcc -O(大写)			对程序进行优化编译链接
gcc -O2				    更好的优化
gcc -E					预编译后停下来,生成后缀为 .i 的预编译文件。
gcc -S					汇编后停下来,生成后缀为 .s 的汇编源文件。

-Idirname:将 dirname 所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。

-Ldirname:将dirname所指出的目录加入到程序函数库文件的目录列表中,是在链接过程中使用的参数。在默认状态下,链接程序 ld 在系统默认路径中(如 /usr/lib)寻找所需要的库文件。这个选项告诉链接程序,首先到 -L 指定的目录中去寻找,然后到系统默认路径中寻找;如果函数库存放在多个目录下,就需要依次使用这个选项,给出相应的存放目录。

-lname链接时装载名为 libname.a 的函数库。该函数库位于系统默认的目录或者由 -L 选项确定的目录下。例如,-lm 表示链接名为 libm.a 的数学函数库。

警告部分

-Wall 选项
除了 -pedantic 之外,gcc 还有一些其他编译选项,也能够产生有用的警告信息。这些选项大多以 -W 开头。其中最有价值的当数 -Wall 了,使用它能够使 gcc 产生尽可能多的警告信息。

建议:gcc 给出的警告信息是很有价值的,它们不仅可以帮助程序员写出更加健壮的程序,而且还是跟踪和调试程序的有力工具。建议在用 gcc 编译源代码时始终带上 -Wall 选项,并把它逐渐培养成一种习惯,这对找出常见的隐式编程错误很有帮助。

-Werror 选项
在处理警告方面,另一个常用的编译选项是 -Werror。它要求 gcc 将所有的警告当成错误进行处理,这在使用自动编译工具(如 Make 等)时非常有用。如果编译时带上 -Werror 选项,那么 gcc 会在所有产生警告的地方停止编译,迫使程序员对自己的代码进行修改。只有当相应的警告信息消除时,才可能将编译过程继续朝前推进。

-v
输出 gcc 工作的详细过程

-static
Linux下的库文件分为两大类,分别是:动态链接库(通常以 .so 结尾)和静态链接库(通常以 .a 结尾)。两者的差别仅在程序执行时所需的代码是在运行时动态加载的,还是在编译时静态加载的。默认情况下,gcc 在链接时优先使用动态链接库,只有当动态链接库不存在时才考虑使用静态链接库。如果需要的话,可以在编译时加上 -static 选项,强制使用静态链接库。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 要在CentOS上离线安装GCCG++,可以按照以下步骤进行操作: 1. 在另一台已连接到互联网的计算机上下载所需的GCCG++安装包,并将它们复制到离线机器上。你可以从GCC官方网站(https://gcc.gnu.org/)或CentOS官方存储库中找到适用于你的操作系统版本的安装包。 2. 在离线机器上创建一个本地源存储库。你可以使用任何喜欢的方式,如将安装包复制到一个文件夹中。 3. 在终端中使用命令`yum install gcc`和`yum install gcc-c++`尝试安装GCCG++。由于离线机器无法通过互联网连接到CentOS存储库,该命令将会失败。然而,这将提供一份完整的依赖关系清单。 4. 确保你已安装“createrepo”工具。如果未安装,可以使用命令`yum install createrepo`进行安装。 5. 使用“createrepo”工具创建本地源的元数据。在终端中导航到存储库所在的文件夹,然后运行`createrepo .`命令(注意结尾的点号)。 6. 编辑“/etc/yum.repos.d”的任何name.repo文件,并在文件中添加以下内容: [mylocalrepo] name=My Local Repo baseurl=file:///path/to/local/repo enabled=1 gpgcheck=0 请确保将“/path/to/local/repo”替换为存储库所在的实际文件夹路径。 7. 保存并关闭文件。 8. 现在,运行`yum clean all`命令清理所有缓存。 9. 最后,通过运行`yum install gcc`和`yum install gcc-c++`命令从本地源存储库安装GCCG++。 通过按照以上步骤,在CentOS上离线安装GCCG++应该是相对简单的。确保将路径和文件名替换为实际的值,并根据需要调整任何其他设置。 ### 回答2: 离线安装CentOS GCC和G一般需要以下步骤: 1. 在一个可以联网的环境中下载GCC和G的压缩包文件。可以在CentOS官方网站、软件仓库或者其他合法的软件源中找到适用于你的CentOS版本的GCC和G压缩包文件。 2. 将下载好的压缩包文件复制到离线机器上。可以使用U盘、移动硬盘或者其他可移动存储设备来传输文件。 3. 在离线机器上解压缩GCC和G压缩包文件。可以使用命令行工具(如tar命令)或者图形界面工具(如文件管理器)来完成解压缩操作。 4. 进入解压缩后的文件夹,并执行相应的安装命令。一般来说,安装GCC需要执行类似以下命令:`./configure && make && make install`,而安装G需要执行类似以下命令:`./configure && make && make install`。请注意,具体的安装命令可能会因软件版本和配置不同而有所差异,请根据压缩包中的说明文档进行操作。 5. 完成安装后,可以使用GCC和G来进行编译和链接操作了。可以使用`gcc`命令来编译C/C++程序,使用`g++`命令来编译C++程序,使用`gfortran`命令来编译Fortran程序。 需要注意的是,离线安装过程中需要手动处理依赖关系GCC和G所需要的相关依赖库和工具可能需要提前安装和配置,以确保编译和链接过程顺利进行。 总之,离线安装CentOS GCC和G主要包括下载、复制、解压缩、安装和配置等步骤,需要根据具体情况进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值