在 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,而不会误用系统路径下的版本。
浙公网安备 33010602011771号