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

时间:2011-09-21 21:24:56

标签: qmake

我想使用-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 个答案:

答案 0 :(得分:21)

我发现here是一种正确逃避它的方法:

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

答案 1 :(得分:11)

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

QMAKE_RPATHDIR += $ORIGIN/../mylibs

答案 2 :(得分:2)

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

QMAKE_RPATHDIR += lib

只要您使用相对目录,这将自动将所需条目(包括$ORIGIN-Wl,-z,origin添加到makefile)中添加到makefile中。这意味着lib将产生所需的“原点”条目,而/lib之类的东西则不会。您添加到QMAKE_RPATHDIR的所有相对目录都将自动相对于$ORIGIN

答案 3 :(得分:1)

元= $

QMAKE_LFLAGS + = -Wl,-rpath = $$ {DOLLAR} $$ {DOLLAR} ORIGIN /../ myLibs