Linux下的GCC编译器工具集成

本文详细介绍了Linux环境下GCC编译器的工作原理和使用方法,包括各种文件扩展名的含义、编译过程的各个阶段、单个及多个文件的编译、静态与动态链接库的创建和使用,以及动态加载库的控制函数。通过实例展示了如何生成和使用静态库、动态库,并解决运行时找不到动态链接库的问题。
摘要由CSDN通过智能技术生成

1.GCC简介

文件扩展名:

*.c:该类文件为C语言的源文件

*.h:该类文件为C语言的头文件

*.i:该类文件为预处理后的C文件

*.cc:该类文件为C++语言的源文件

*.cpp:该类文件为C++语言的源文件

*.s:该类文件为汇编语言的源文件

*.o:该类文件为汇编后的目标文件

*.a:该类文件为静态库

*.so:该类文件为共享库

a.out:该类文件为链接后的输出文件

进行程序编译的时候,头文件路径和库文件路径是编译器默认查找的地方

头文件:/usr/local/include,/usr/lib/gcc/i486-linux-gnu/4.1.2/include,/usr/include

库文件:/usr/lib/gcc/i486-linux-gnu/4.1.2/ ,......,/lib,/usr/lib

2.编译程序的基本知识

GCC编译器将预编译、编译和优化、汇编、链接这4个步骤合并为1个。

目标文件是指经过编译器的编译生成的CPU可识别的二进制代码,但是目标文件一般不能执行,因为其中的一些函数过程没有相关的指示和说明。可执行文件就是目标文件与相关的库链接后的文件,它是可以执行的。

所有的目标文件必须用某种方式组合起来才能运行,这就是链接的作用。目标文件中通常仅解析了文件内部的变量和函数,对于引用的函数和变量还没有解析,这需要将其他已经编写好的目标文件引用进来将没有解析的变量和函数进行解析,通常引用的目标就是库。链接完成后会生成可执行文件。

3.单个文件编程成可执行文件

gcc -o hello hello.c

GCC先将C文件编译成目标文件,然后将目标文件链接成可执行文件,最后删除目标文件。-o选项表示可以使编译程序生成指定的可执行文件名,如果没有-o选项,则默认生成a.out。

4.编译生成目标文件

gcc -c hello.c

会生成一个hello.o的目标文件

gcc -c -o test.o hello.c

生成一个test.o的目标文件

gcc -c file1.c file2.c file3.c

生成3个file1.o file2.o和file3.o

5.多文件编译

GCC可以自动编译多个文件,不管是目标文件还是源文件,都可以使用同一个命令编译到可执行文件中。

源文件string.c,包含了用于计算的S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值