【问题标题】:Qt program does not detect librariesQt 程序不检测库
【发布时间】:2014-05-27 18:38:16
【问题描述】:

我构建了一个 Qt 应用程序,并在构建目录中包含了所需的库。当我尝试从另一台计算机运行应用程序时,它不起作用。

这是ldd 输出:

linux-vdso.so.1 =>  (0x00007fff8c7fe000)
libQt5Widgets.so.5 => not found
libQt5Gui.so.5 => not found
libQt5Core.so.5 => not found
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f5cb4143000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f5cb3f2d000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5cb3b6c000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5cb3870000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5cb4456000)

未找到的文件与二进制文件位于同一目录中。如何让它们被检测到?

【问题讨论】:

    标签: c++ qt ubuntu libraries


    【解决方案1】:

    在 Linux 上,当前的二进制目录不是加载器寻找共享库的地方。看到这个问题:https://serverfault.com/questions/279068/cant-find-so-in-the-same-directory-as-the-executable

    【讨论】:

      【解决方案2】:

      您可以将以下内容添加到您的 .pro 文件中,以强制动态链接器在 Linux 运行时在与 Qt 应用程序相同的目录中查找:

      unix:{
          # suppress the default RPATH if you wish
          QMAKE_LFLAGS_RPATH=
          # add your own with quoting gyrations to make sure $ORIGIN gets to the command line unexpanded
          QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN\'"
      }
      

      【讨论】:

        猜你喜欢
        • 2010-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多