【问题标题】:Library search paths using the -R option使用 -R 选项的库搜索路径
【发布时间】:2011-04-14 19:12:42
【问题描述】:

网上有大量文章以刺耳的语气宣称使用 LD_LIBRARY_PATH 是一个坏主意,并且必须使用 -R 选项设置库搜索路径。大多数上述文章也同时提到了 Solaris。问题是,在 Linux 上,这不适用于 g++。

g++: unrecognized option '-R'

现在呢?

谢谢!

【问题讨论】:

    标签: linker g++ option


    【解决方案1】:

    你可以使用-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++ 时似乎是个问题。感谢您的快速回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 2012-07-08
    • 2017-01-15
    • 2015-08-29
    相关资源
    最近更新 更多