如何从不存在的(在编译时)文件夹链接共享库

how to link shared library from non existing(in compile time) folder

本文关键字:文件夹 链接 共享 编译 不存在      更新时间:2023-10-16

我试图用-rpath选项链接共享库到另一个共享库(protobuf),问题是库在编译时比在运行时在另一个目录中,并且-rpath选项需要在编译时路径中存在。(所以我得到一个"没有这样的文件或目录"错误)有什么解决办法吗?我宁愿不使用LD_LIBRARY_PATH变量来解决这个问题。

-rpath指定运行时库搜索路径。

程序库HOWTO

"在开发过程中,存在修改库的潜在问题,该库也被许多其他程序使用,并且您不希望其他程序使用developmental''library, only a particular application that you're testing against it. One link option you might use is ld's rpath"选项,该选项指定正在编译的特定程序的运行时库搜索路径。在gcc中,你可以通过这样指定来调用rpath选项:- wl, rpath $ (DEFAULT_LIB_INSTALL_PATH)如果在构建库客户端程序时使用此选项,则不需要处理LD_LIBRARY_PATH(下面将介绍),只需确保它不冲突,或者使用其他技术隐藏库。"

我在这里找到了答案,我可以改变'rpath'在已经编译的二进制文件中?

编译后更改rpath解决了我的问题。

[编辑]还有另一种更好的方法:如何通过相对路径

从共享库链接到共享库