我想在Linux上构建可执行文件foobar
,该文件依赖于共享库,例如libfoobar.so
。所以我
gcc foobar.o -Xlinker -rpath
从可执行文件到库的相对路径-lfoobar -o foobar
我必须提供库的路径,以便链接器不会抱怨,即使在链接时不需要该库也是如此。
然后将可执行文件和库安装到系统目录(与初始位置和彼此无关)。
在那之后,我无法运行它,因为用于构建的库的路径不再有效,并且找不到该库。
设置链接器选项以使其在链接时和运行时均能工作的最佳方法是什么?
我不能使用绝对路径,因为在不同的用户将具有不同的安装根目录下,它们在构建期间通常是一个坏主意,在运行时也不可能使用。仅保证在构建时和运行时的相对路径始终相同。