# SharedLibStaticLib **Repository Path**: oucaijun/SharedLibStaticLib ## Basic Information - **Project Name**: SharedLibStaticLib - **Description**: linux 生成静态库,生成动态库,由静态库生成动态库,由动态库生成动态库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-03-09 - **Last Updated**: 2021-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SharedLibStaticLib #### 项目介绍 linux 生成静态库,生成动态库,由静态库生成动态库,由动态库生成动态库 ``` -L、-rpath和-rpath-link的区别 https://blog.csdn.net/q1302182594/article/details/42102961 { -rpath和-rpath-link都可以在链接时指定库的路径;但是运行可执行文件时,-rpath-link指定的路径就不再有效(链接器没有将库的路径包含进可执行文件中),而-rpath指定的路径还有效(因为链接器已经将库的路径包含在可执行文件中了)。 最后,不管使用了-rpath还是-rpath-link,LD_LIBRARY_PATH还是有效的。 } pkg-config 工具包程序编译中的使用 https://blog.csdn.net/kxuehen/article/details/49329721 { 1. 假设第三方库 libADD.so 以及 ADD.pc 文件已经安装在 /opt/demo-lib/usr/lib/pkgconfig/ ADD.pc 关键 : 设置好库和头文件引用目录 prefix=/opt/demo-lib/usr exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include/ADD Libs: -L${libdir} -lADD Cflags: -I${includedir} -Wl,-rpath,${libdir} 2. 设置 pkg-config 系统环境变量 PKG_CONFIG_PATH=/opt/demo-lib/usr/lib/pkgconfig/:$PKG_CONFIG_PATH 3. pkg-config --cflags --libs ADD 查看库的配置参数 `pkg-config --cflags --libs ADD ` 可以直接用作gcc命令参数 4. 利用 g++ main.cpp -o a.out `pkg-config --cflags --libs ADD ` 编译程序, 5. 将 libADD.so 库部署在 -rpath 指定的目录下 如 /opt/demo-lib/usr/lib/libADD.so } ```