Linux中有很多地方用到软连接,比如lib库文件,通常会创建xxx.so.1之类的软连接文件,但是涉及到交叉编译的时候,需要将软连接一起拷贝到目标机器,如果一个个文件复制到目标机器,然后再建立软连接就会变得非常麻烦,那么如何在使用tar打包的时候连软连接一起打包进去呢?其实用两条简单的命令就能够实现我们的目的。
这里笔者以交叉编译curl为例,目标及其是ARM平台,需要将依赖库libcurl打包到目标机器。打包前的目录如下所示
可以看到,libcurl.so和libcurl.so.4都连接到了libcurl.so.4.6.0上那么我们需要使用tar打包,命令如下
tar -zcvf a.tgz libcurl.so.4 libcurl.so.4.6.0
接着,将a.tgz复制到目标机器。
然后使用如下命令进行解压缩:
tar zxvf a.tgz
然后咱们来看看解压之后的目录
完美实现我们的目标!可以看到,软连接指向的就是当前的相对路径。