Qmake 并将 $ORIGIN 传递给链接器选项 -rpath
我想使用 -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
?
I would like to use the -rpath linker option to set the .so search path. I'd like it to search [app_path]/../lib
. I've tried add this to my qmake .pro
file:
QMAKE_LFLAGS += -Wl,-rpath=$ORIGIN/../lib/
But qmake links my project this way:
g++ -Wl,-rpath=RIGIN/../lib/ -Wl,-O1 -o myoutput main.o [...]
How can I escape the $ORIGIN
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我发现这里一种正确逃避它的方法:
I found here a way to properly escape it:
如果您希望在构建时(正确)评估
$ORIGIN
,您只需将其添加到您的.pro
文件中:If you want
$ORIGIN
to be (properly) evaluated while building you can simply add this to your.pro
file:这是一个非常古老的问题,但是对于通过搜索来到这里的人们来说:不再需要旧答案中描述的方法。现代 Qt 版本(我的例子是 5.9),允许您只使用这个:
这将添加所需的条目(包括
$ORIGIN
和-Wl,-z,origin
其中只要您使用相对目录,就会自动添加到 makefile 中。这意味着lib
将生成所需的“原始”条目,而/lib
之类的内容则不会。您添加到QMAKE_RPATHDIR
的任何相对目录都将自动相对于$ORIGIN
。This is a really old question, but for people getting here through a search: the methods described in the old answers are not needed anymore. Modern Qt versions (5.9 in my case), allow you to just use this:
This will add the needed entries (including
$ORIGIN
and-Wl,-z,origin
where needed) automatically to the makefile, as long as you're using a relative directory. Meaning thatlib
will produce the needed "origin" entries, while something like/lib
will not. Any relative directory you add toQMAKE_RPATHDIR
will be made relative to$ORIGIN
automatically.DOLLAR=$
QMAKE_LFLAGS += -Wl,-rpath=$${DOLLAR}$${DOLLAR}ORIGIN/../myLibs
DOLLAR=$
QMAKE_LFLAGS += -Wl,-rpath=$${DOLLAR}$${DOLLAR}ORIGIN/../myLibs