代码之家  ›  专栏  ›  技术社区  ›  yan bellavance

如何设置qt应用程序在哪里找到qt模块?

  •  11
  • yan bellavance  · 技术社区  · 16 年前

    我想将libqtgui.so.4 libqtnetwork.so.4和libqtcore.so.4包含在我的应用程序所在的目录中。我怎样才能让Qt明白这一点?Y的目的是拥有一个使用共享库的独立应用程序

    3 回复  |  直到 13 年前
        1
  •  9
  •   baysmith    16 年前

    设置ld_library_path环境变量是一个选项。例如:

    export LD_LIBRARY_PATH=/path/to/dir/with/libs:$LD_LIBRARY_PATH
    

    另一个选项是在链接期间设置qt应用程序的rpath。将rpath设置为值“$origin”将导致动态链接器在运行时查找与qt应用程序相同的目录。例如,如果使用qmake,请将以下代码段添加到项目文件中:

    unix:!mac{
      QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN
      QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/lib
      QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/libs
      QMAKE_RPATH=
    }
    

    这将把rpath设置为“$origin:$origin/lib:$origin/libs”,这意味着动态链接器将首先查找qt应用程序的位置,然后在其位置的lib子目录中,然后在其位置的libs子目录中,最后在任何系统定义的位置中。

        2
  •  0
  •   mrjoltcola    16 年前

    在查找系统标准libs之前,UNIX/Linux将首先查找ld_library_path(如果设置)。因此,如果设置了该值,则确实可以重写。就像在Windows上设置路径一样。同样的效果。订购很重要。

    您可以添加/或。到图书馆的路径。

    export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
    
        3
  •  0
  •   Aurélien    13 年前

    LD_LIBRARY_PATH 和 QMAKE_RPATH 从来没有为我工作过。相反,我设置 QMAKE_RPATHDIR 在我的 .pro 文件。例如,在建造和安装之后( make install )qt,它已经放在 /usr/local/Trolltech/Qt-4.8.5/lib/ . 然后我在我的 .专业 文件:

    QMAKE_RPATHDIR += /usr/local/Trolltech/Qt-4.8.5/lib/
    

    注1:相对路径似乎不起作用。首选绝对路径。

    注2:那时 make ,可以看到链接器具有以下选项: -Wl,-rpath,/usr/local/Trolltech/Qt-4.8.5/lib/

    注3:为了确保二进制文件动态链接到正确的库,可以在运行时显示qt的版本 qVersion() .