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