Linux 打包可执行程序与SDK的所有依赖的so库

1.查询依赖so库

查询动态库依赖的so库

ldd  libXXX.so
ldd  yourExe

2.拷贝依赖库到指定目录

首先根据ldd查询依赖的so库,将依赖的so库拷贝到指定文件夹

ldd your_server | awk '{print $3}' | xargs -i cp -L {
    
    } /home/name/bin/

3.添加依赖库的指定路径

#env.sh  指定当前路径为库的查找路径
export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH

4.pkg-config

pkg-config是一个linux下的命令,用于获得某一个库/模块的所有编译相关的信息。

#可以看到其输出是gtk的头文件的路径
pkg-config --cflags gtk+-2.0
gcc main.c `pkg-config --cflags --libs gtk+-2.0` -o main
#上面的编译命令中,`pkg-config --cflags --libs gtk+-2.0`的作用就如前面所说的,把gtk的头文件路径和库文件列出来,让编译去获取。--cflags和--libs分别指定头文件和库文件。
#PS:命令中的`不是引号,而是数字1左边那个键位的那个符号。

因为pkg-config也只是一个命令,所以不是你安装了一个第三方的库,pkg-config就能知道第三方库的头文件和库文件所在的位置。pkg-config命令是通过查询XXX.pc文件而知道这些的。我们所需要做的是,写一个属于自己的库的.pc文件。

猜你喜欢

转载自blog.csdn.net/idream68/article/details/118966338
今日推荐