GCC是在Linux上使用最为广泛的C语言和C++语言的编译工具了,C语言和Java不一样,生成一个可执行文件分为编译和连接两部分。我们分别来简单看一下。
比如我们编写一个一个Test.c的应用程序,首先需要编译这个代码。命令如下
gcc -c Test
.
c
我们会发现在当前目录下就会生成一个叫做Test.o的二进制文件,这个文件就是编译的产物,不过是不能直接运行的,需要和外部的lib进行link以后才能生成可执行文件,命令如下
gcc -o Test
.
o
执行完毕后你会发现当前目录下产生了一个a.out的可执行文件,使用./a.out命令就可以运行。
另外,Linux的C可以通过gcc来编译一个动态运行库,就类似Windows中的dll一样,可以分离lib与执行程序的静态耦合性,易于升级程序。是通过
gcc -shared -o a
.
so Test
.
o
执行完毕以后,你就会发现当前目录生成了一个名叫a.so的动态运行库。
当然,你可以把编译和link合二为一,比如通过
gcc Test
.
c
命令后,就可以直接生成a.out了,适合于没有外接lib的简单程序的场合使用。