在构建二进制文件或库时,指定rpath
,即
-Wl,rpath,<path/to/lib>
告诉链接器在二进制文件运行时在哪里可以找到所需的库。
这里关于绝对路径和相对路径的 UNIX 哲学是什么?使用绝对路径是否更好,以便可以从任何地方找到 lib?还是让它相对更好,这样复制整个目录或重命名更高级别的路径不会使二进制文件不可用?
更新
使用$ORIGIN
通常是构建二进制文件的首选方式。对于库,我喜欢放在绝对路径中,否则你将无法链接到库。符号链接将指向链接$ORIGIN
的路径而不是链接目标的路径。