我有一个应用程序,为了代码重用而分成几个库。在 Windows 上,我只需将 .dll 文件放在可执行文件相同的路径下,它就会自动找到它们。但在 Linux 上(因为它硬编码了路径),我必须指定环境变量 LD_LIBRARY_PATH
或在可执行文件之前预加载这些库。
我看到一些关于使用链接器选项 -Wl,-rpath=<PATH>
嵌入路径的内容,我尝试使用 .
作为路径。但那只是查找当前工作目录,而不是可执行文件的目录。
是否有一种方法可以在链接器中默认查找可执行文件目录中的共享库(就像在 Windows 上)?
谢谢! Matt
-Wl,-rpath = $$ ORIGIN
,并且在输出窗口中,它显示为单个$。但是似乎不起作用。我尝试了几种变化,但没有任何反应。就像链接器忽略了该标志一样。我尝试过: -Wl,-rpath = $ ORIGIN -Wl,--rpath = $ ORIGIN -Wl,-rpath = / $ ORIGIN -Wl,-rpath = $ ORIGIN / -Wl,-rpath = / $ ORIGIN / 等等。 - CuppM-rpath \$$ORIGIN
怎么样? - John Zwinck