首页 / 操作系统 / Linux / 利用GCC编译器生成动态链接库和静态链接库
1、编译过程gcc –fPIC –c xxx.c其中-fPIC是通知gcc编译器产生位置独立的目标代码。链接的时候不通过拷贝来进行。2、链接过程gcc –shared –o libxxx.so xxx.o经过编译链接就可以生成动态链接库,其扩展名为.soEg.还可以gcc –fPIC –shared -o libhello.so hello.c举个例子://Hello.h//hello.c//main.c先生成动态链接库然后编译链接main.c但是把-lhello放在文件名后面就没有问题了,并生成了一个main执行文件:运行执行文件的时候出现了以下问题:原因可能是程序运行时并不知道动态库所在的路径,因此自然未找到。解决方法:拷贝动态链接库到系统共享目录下,或在系统共享目录下为该动态链接库建立连接(硬连接或符号连接均可,常用符号连接)。其中ldconfig是为了让动态链接库为系统所共享。动态链接库被系统所共享以后,再运行main,得到结果如下:利用GCC编译器生成静态链接库用个例子来说明如何在gcc编译器中生成静态链接库//Hello.h//hello.c//main.c首先gcc –c hello.c文件生成hello.o然后利用hello.o生成静态链接库,利用ar –rc –o libhello.a hello.o或者利用 ar rcs –o libhello.a hello.o然后利用静态链接库编译链接main.cLinux升级GCC 4.8.1清晰简明教程(Ubuntu 12.04 64位版为例) http://www.linuxidc.com/Linux/2014-04/99583.htm Ubuntu 14.04 LST安装GCC 4.1.2 http://www.linuxidc.com/Linux/2016-06/132040.htmUbuntu下Vim+GCC+GDB安装及使用 http://www.linuxidc.com/Linux/2013-01/78159.htm Ubuntu下两个GCC版本切换 http://www.linuxidc.com/Linux/2012-10/72284.htm CentOS6.5升级手动安装GCC4.8.2 http://www.linuxidc.com/Linux/2015-01/112595.htm GCC 的详细介绍:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-09/134893.htm