我想使用-rpath链接器选项来设置.so搜索路径.我想要搜索[app_path]/../lib.我已经尝试将此添加到我的qmake .pro文件中:
QMAKE_LFLAGS += -Wl,-rpath=$ORIGIN/../lib/
Run Code Online (Sandbox Code Playgroud)
但是qmake以这种方式链接我的项目:
g++ -Wl,-rpath=RIGIN/../lib/ -Wl,-O1 -o myoutput main.o [...]
Run Code Online (Sandbox Code Playgroud)
我该$ORIGIN怎么逃避?
Vit*_* Py 22
我在这里找到了一种正确逃避它的方法:
QMAKE_LFLAGS += '-Wl,-rpath,\'\$$ORIGIN/../mylibs\''
Run Code Online (Sandbox Code Playgroud)
Aur*_*ien 11
如果您希望$ORIGIN在构建时进行(正确)评估,只需将其添加到您的.pro文件中:
QMAKE_RPATHDIR += $ORIGIN/../mylibs
Run Code Online (Sandbox Code Playgroud)
这是一个非常古老的问题,但是对于通过搜索来到这里的人们来说:不再需要旧答案中描述的方法。现代 Qt 版本(我的例子是 5.9),允许你使用这个:
QMAKE_RPATHDIR += lib
Run Code Online (Sandbox Code Playgroud)
只要您使用相对目录,这就会自动将所需的条目(包括需要的条目)添加$ORIGIN到makefile 中。-Wl,-z,origin这意味着这lib将产生所需的“起源”条目,而类似的东西则/lib不会。您添加到的任何相对目录都QMAKE_RPATHDIR将自动建立相对目录$ORIGIN。