![Qt 升级问题,Cmake 仍在查找 /usr/lib/x86_64-linux-gnu](https://linux22.com/image/1179358/Qt%20%E5%8D%87%E7%BA%A7%E9%97%AE%E9%A2%98%EF%BC%8CCmake%20%E4%BB%8D%E5%9C%A8%E6%9F%A5%E6%89%BE%20%2Fusr%2Flib%2Fx86_64-linux-gnu.png)
我认为我缺乏一些基本的了解,不知道如何通过 qt.io 中的 .run 文件适当地升级 Qt,以及如何在尝试使用 CMake 构建某些代码时适当地引用它。以下是我正在做的事情:
我正在尝试构建几何处理框架打开Flipper,我正在关注文档这里。文档说它需要 Qt 版本 5.11 到 5.13 之间,而我用 apt 获取的最新版本是 5.9.2。我所做的事情:
- 我从 qt.io 下载了一个 .run 文件并安装了 5.15.1(有成功构建使用这个版本)在 ~/Qt/
- 以下两篇帖子:1,2;我为 qtchooser 制作了指向 ~/Qt/5.15.1/gcc_64/bin 和 ~/Qt/5.15.1/gcc_64/lib 的配置文件
- 按照文档,我运行了 cmake,它设置了指向 /usr/lib/x86_64-linux-gnu 的变量。
- 为了尝试纠正这个问题,我运行了 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 相关的条目,然后再次点击配置。
很高兴能了解为什么这样做有效。或者我应该把这个问题完全删除,因为这个解决方案没有太多信息(至少对我来说)。