在 CMake 中设置 RPATH 主动控制你的库的依赖路径
✅ 解决方案:在你的 .so
文件中嵌入固定依赖路径(rpath)
你需要在构建你的库时,嵌入 RPATH
或 RUNPATH
,告诉 Linux 运行时 linker (ld.so
) 去你指定的路径查找依赖。
🔧 方法 1:CMake 设置 RPATH(推荐)
在你的 CMake 项目中加入以下内容:
生成的 libyourlib.so
就会带有 RUNPATH:/opt/yourlibs
,不管别人在哪里运行它,都会优先去这个路径加载 libxxx.so
。
🧪 验证:你的 libyourlib.so
是否带有 RUNPATH
输出应类似:
这样,只要别人的 demo 链接到你的库,最终运行时,动态加载器都会用 /opt/yourlibs/libxxx.so
,而不会误用系统路径下的版本。