Linux - gcc编译详解
gcc 重点

gcc 编译过程拆解

一步到位的编译

更详细的步骤见下图


指定头文件所在路径,使用参数 -I headDir

相关参数信息


静态库的制作 -超重点
1.生成*.o文件

2.使用ar工具将*.o打包-就生成了静态库

3.将静态库放到合适的位置

4.静态库的使用:
下面2种使用方式-重点

打包时,以*.o为单位打包到可执行程序中,并不一定是所有的都被打包
用到谁就打包谁

动态库/共享库的制作 -超重点
第一步:生成与位置无关的*.o

第二步:打包-生成*.so文件

第三步:指定位置(看情况-可忽略)

第四步:使用
两种使用方式同静态库一样

超重点
下面是解决第二种方式出错的几种方法
首先查看可执行文件所依赖的动态/共享库

4种加载方式
(1)将动态库拷贝到lib里面(lib里面存放的是linux系统启动/运行时需要的动态库) -------但是在实际开发过程中杜绝使用
操作完毕后,相关变化如下

(2)将动态库的路径指定给环境变量LD_LIBRARY_PATH
此方法只能起到临时作用,终端关闭就会失效:建议在开发动态库的测试过程中使用此方法

(3)在.bashrc里面添加动态库所在路径,然后重启终端即可(因为在启动一个终端时先执行.bashrc文件,也就执行了所需要配置的动态库的路径)
此方法为永久设置,但是也并不经常使用


(4)最重要同时也是最复杂的一种方案 1) 2) 3) 4)

1).找到动态链接器的配置文件

2)修改配置文件:将动态库的绝对路径添加进去

3)更新操作必不可少
sudo ldconfig 或者 sudo ldconfig -v

4)查看一下可执行程序的链接库的路径,发现还是绝对路径-故而相对较重要

浙公网安备 33010602011771号