首页 文章

Qmake并将$ ORIGIN传递给链接器选项-rpath

提问于
浏览
14

我想使用-rpath链接器选项来设置.so搜索路径 . 我想要搜索 [app_path]/../lib . 我已经尝试将此添加到我的qmake .pro 文件中:

QMAKE_LFLAGS += -Wl,-rpath=$ORIGIN/../lib/

但是qmake以这种方式链接我的项目:

g++ -Wl,-rpath=RIGIN/../lib/ -Wl,-O1 -o myoutput main.o [...]

我怎么能逃脱 $ORIGIN

4 回答

  • 10

    如果您希望在构建时(正确)评估 $ORIGIN ,只需将其添加到 .pro 文件:

    QMAKE_RPATHDIR += $ORIGIN/../mylibs
    
  • 1

    我找到了here一种正确逃脱它的方法:

    QMAKE_LFLAGS += '-Wl,-rpath,\'\$$ORIGIN/../mylibs\''
    
  • 21

    这是一个非常古老的问题,但对于通过搜索到达此处的人来说:不再需要旧答案中描述的方法 . 现代Qt版本(在我的情况下为5.9),允许您使用它:

    QMAKE_RPATHDIR += lib
    

    这将自动将所需的条目(包括 $ORIGIN-Wl,-z,origin )添加到makefile中,只要您使用的是相对目录即可 . 这意味着 lib 将产生所需的"origin"条目,而 /lib 之类的东西则不会 . 您添加到 QMAKE_RPATHDIR 的任何相对目录都将自动相对于 $ORIGIN .

  • 2

    美元= $

    QMAKE_LFLAGS = -Wl,-rpath = $$ $$ ORIGIN /../ myLibs

相关问题