Linker 使用-R选项的库搜索路径

Linker 使用-R选项的库搜索路径,linker,g++,option,Linker,G++,Option,网上有大量文章尖锐地宣称使用LD_LIBRARY_PATH是个坏主意,必须使用-R选项设置库搜索路径。上述大多数文章也同样提到了Solaris。问题是,在Linux上,这不适用于g++ g++: unrecognized option '-R' 现在怎么办 谢谢 您可以使用-Wl,-rpath=/your/rpath: $ g++ -o t t.cpp -Wl,-rpath=/my/lib/dir -lwhatever $ readelf -a t|grep RPATH 0x00000000

网上有大量文章尖锐地宣称使用LD_LIBRARY_PATH是个坏主意,必须使用-R选项设置库搜索路径。上述大多数文章也同样提到了Solaris。问题是,在Linux上,这不适用于g++

g++: unrecognized option '-R'
现在怎么办


谢谢

您可以使用
-Wl,-rpath=/your/rpath

$ g++ -o t t.cpp -Wl,-rpath=/my/lib/dir -lwhatever
$ readelf -a t|grep RPATH
 0x000000000000000f (RPATH)              Library rpath: [/my/lib/dir]

太好了,谢谢!我试过了,发现问题更严重了。我想构建一个可以发布的应用程序,而不需要最终用户设置运行时搜索路径。如果我这样做,那么整个过程只有在从特定位置调用构建的应用程序时才起作用。相对运行时搜索路径在其他目录中无效。当然,我不知道绝对搜索路径是什么。理想的做法是静态编译,但在链接libstdc++时,这似乎是一个问题。谢谢你的快速回复。