我正在处理与以下情况类似的情况:
要正确构建的项目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。
结果是:
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
我们可以看到此解决方案无效。为什么?
编辑:Qt5_DIR
对于每个项目似乎都是正确的,但是Qt5<ComponentName>_VERSION
已关闭。看来项目A使用的组件已被快照并错误地重新用于项目B。如何克服这个问题?