Qt 升级问题,Cmake 仍在查找 /usr/lib/x86_64-linux-gnu

Qt 升级问题,Cmake 仍在查找 /usr/lib/x86_64-linux-gnu

我认为我缺乏一些基本的了解,不知道如何通过 qt.io 中的 .run 文件适当地升级 Qt,以及如何在尝试使用 CMake 构建某些代码时适当地引用它。以下是我正在做的事情:


我正在尝试构建几何处理框架打开Flipper,我正在关注文档这里。文档说它需要 Qt 版本 5.11 到 5.13 之间,而我用 apt 获取的最新版本是 5.9.2。我所做的事情:

  1. 我从 qt.io 下载了一个 .run 文件并安装了 5.15.1(有成功构建使用这个版本)在 ~/Qt/
  2. 以下两篇帖子:12;我为 qtchooser 制作了指向 ~/Qt/5.15.1/gcc_64/bin 和 ~/Qt/5.15.1/gcc_64/lib 的配置文件
  3. 按照文档,我运行了 cmake,它设置了指向 /usr/lib/x86_64-linux-gnu 的变量。
  4. 为了尝试纠正这个问题,我运行了 ccmake(我认为它为我提供了一个更好的编辑 CMakeCache.txt 的界面),并手动将 QT5_INSTALL_PATH 更改为 ~/Qt/5.15.1/gcc_64。配置为我提供了以下结果变量:ccmake 的屏幕截图

可以看出,仍然有变量设置为 /usr/lib/x86_64-linux-gnu 的某个子文件夹。当我生成时,我还会收到各种警告,如下所示:

  CMake Warning at OpenFlipper/cmake/ACGCommon.cmake:322 (add_executable):
  Cannot generate a safe runtime search path for target OpenFlipper because
  files in some directories may conflict with libraries in implicit
  directories:

    runtime library [libQt5Xml.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/edward/Qt/5.15.1/gcc_64/lib
    runtime library [libQt5Sql.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/edward/Qt/5.15.1/gcc_64/lib
    runtime library [libQt5PrintSupport.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/edward/Qt/5.15.1/gcc_64/lib
    runtime library [libQt5Widgets.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/edward/Qt/5.15.1/gcc_64/lib
    runtime library [libQt5Concurrent.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/edward/Qt/5.15.1/gcc_64/lib
    runtime library [libQt5Network.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/edward/Qt/5.15.1/gcc_64/lib
    runtime library [libQt5Gui.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/edward/Qt/5.15.1/gcc_64/lib
    runtime library [libQt5Core.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/edward/Qt/5.15.1/gcc_64/lib

  Some of these libraries may not be found correctly.
Call Stack (most recent call first):
  OpenFlipper/CoreApp/CMakeLists.txt:265 (acg_add_executable)

CMake 设法完成,但是当我运行 make 时,出现以下错误:终端输出的屏幕截图


我很确定最后一个错误无关紧要,我只是在 cmake 阶段遗漏了一些东西。我的下一个想法是手动浏览 ccmake 并将所有与 Qt 相关的变量调整到 ~/Qt/5.15.1/gcc_64/ 的相应子文件夹中。不幸的是,我认为我对 Qt 的了解不够多,无法找到相应的相应文件夹。我想可能会有更简单的方法。

我感觉自己比较低落技术复杂度,所以如果有帮助的话,请随时向我指出有关 CMake、Qt 或 Ubuntu/Linux 的相关参考资料。

答案1

不知道为什么这个方法有效:

  • 我删除了整个构建目录并重新开始。我不得不配置两次,并为 QT5_INSTALL_PATH 提供了 ~/Qt/5.15.1/gcc_64/,并得到了与上述相同的混合结果。
  • 然后我使用 cmake-gui 并删除所有与 qt 相关的条目,然后再次点击配置。

很高兴能了解为什么这样做有效。或者我应该把这个问题完全删除,因为这个解决方案没有太多信息(至少对我来说)。

相关内容