如何在多项目CMake中为每个项目使用特定的Qt版本?

时间:2019-03-22 18:37:31

标签: c++ qt cmake

我正在处理与以下情况类似的情况:

要正确构建的项目A需要Qt 5.5.1,该文件可以在系统路径(即/usr/lib/x86_64-linux-gnu)上使用。

要正确构建的项目B需要安装在主目录(即/home/user/Qt/5.12.0/gcc_64)中的Qt 5.12.0。

项目的A CMakeLists.txt使用find_package(Qt5 5.5.1 EXACT REQUIRED COMPONENTS Core etc.)

项目的B CMakeLists.txt使用find_package(Qt5 5.12.0 EXACT REQUIRED COMPONENTS Core etc. PATHS "/home/user/Qt/5.12.0/gcc_64" NO_DEFAULT_PATH)

两个CMakeList都需要2.8.12版本的CMake。

结果是:

  • 项目A的魅力所在。
  • 项目B警告runtime library [libQt5Core.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in: /home/user/Qt/5.12.0/gcc_64
  • 项目的B链接器报告了许多未定义的引用。

我们可以看到此解决方案无效。为什么?

编辑:Qt5_DIR对于每个项目似乎都是正确的,但是Qt5<ComponentName>_VERSION已关闭。看来项目A使用的组件已被快照并错误地重新用于项目B。如何克服这个问题?

0 个答案:

没有答案