部署Qt共享库时替换RPATH

时间:2014-09-17 16:14:07

标签: qt makefile qmake dynamic-linking

设置

  • 我在我的主目录中有一个本地安装的Qt:/home/user/Qt/...(从现在开始, devdir )。

  • 我尝试打包的Qt应用程序会将相关的Qt共享库安装到/usr/lib/myapplication(从现在开始, installdir )。

    < / LI>
  • 我的包装流程目前设置如下:

    qmake&gt; dh_make -s --createorig&gt; debuild

问题

我正在尝试将 myapplication.pro 中的RPATH设置为仅链接到 installdir 中的库,但它目前链接到 installdir devdir

我认为这与qmake自动创建安装库的依赖关系有关。为了尝试阻止它,我使用qmake -nodepend运行构建过程,但是没有停止发生 devdir 的链接。

如何强制qmake仅链接到 installdir 中的库?

代码

myapplication.pro

QMAKE_LFLAGS = -Wl,-rpath,/usr/lib/myapplication

Makefile中生成的链接标志为:

LFLAGS = -Wl,-rpath,/usr/lib/myapplication -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-rpath,/home/user/Qt/5.3/gcc_64 -Wl,-rpath,/home/user/Qt/5.3/gcc_64/lib

1 个答案:

答案 0 :(得分:0)

可以通过覆盖/home/user/Qt/5.3/gcc_64删除QMAKE_RPATHDIR的路径。要抑制两个路径,变量QMAKE_LFLAGS_RPATH应为空,如Setting RPATH order in QMake

# rpath variables for unix
unix: {
    # suppress the default RPATH
    QMAKE_LFLAGS_RPATH =
    # add custom path
    QMAKE_LFLAGS = -Wl,-rpath,/usr/lib/myapplication
}