使用 CMake 配置 Eigen 3.3.7 时从 C:/Qt/5.12.4/msvc2015_64/bin/qmake.exe 发现不合适的 Qt 版本“5.12.4”

Posted

技术标签:

【中文标题】使用 CMake 配置 Eigen 3.3.7 时从 C:/Qt/5.12.4/msvc2015_64/bin/qmake.exe 发现不合适的 Qt 版本“5.12.4”【英文标题】:Found unsuitable Qt version "5.12.4" from C:/Qt/5.12.4/msvc2015_64/bin/qmake.exe when configuring Eigen 3.3.7 using CMake 【发布时间】:2020-01-30 06:58:51 【问题描述】:

环境:

Windows 10 版本 1903,64 位 CMake 3.15.3 Qt 5.12.4 特征 3.3.7 Visual Studio 2015 更新 3

问题:

当我在 Eigen 3.3.7 根文件夹中创建的 build 文件夹中运行 cmake -G"Visual Studio 14 2015 Win64" .. 时,我收到以下错误消息:

-- 从 C:/Qt/5.12.4/msvc2015_64/bin/qmake.exe 发现不合适的 Qt 版本“5.12.4”

-- 未找到 Qt4,因此禁用 mandelbrot 和 opengl 演示

我已经用谷歌搜索了几天,但这些文章要么是关于其他平台的,要么不起作用。例如,我仔细检查了 PATH 环境变量是否设置正确,以便 where qmake 返回正确的路径。那么,如何让 Eigen 3.3.7 在使用 cmake 配置时(包括 mandelbrot 和 opengl 演示)愉快地与 Qt5 一起工作,或者 Eigen3 根本不能与 Qt5 一起工作,只能与 Qt4 一起工作?如果后者是答案,我会感到惊讶,因为 Qt5 已经存在了将近十年。如果是这样的话,Eigen3 开发者是否有计划在不久的将来支持 Qt5?谢谢。

【问题讨论】:

看起来这些演示最近几年几乎没有动过。我认为让它们与 Qt5 兼容应该不难。随意提出问题或提供补丁/拉取请求。 Eigen 本身不使用/不依赖 Qt,这只是一个演示应用程序。 谢谢,我会忽略这个错误。所以报错是因为 mandelbrot 和 opengl 的 demo 是完全基于 Qt4 构建的,所以他们的 CMakeLists.txt 文件必须专门检查 Qt4 对吧? @user5280911 虽然相距不远,但 Qt 4 和 Qt 5 仍然有足够的不同,它们不直接兼容源代码(好吧,除非你使用足够多的 #ifdefs 并避免许多不错的 Qt 5 功能) .所以通常 app 要么是 Qt 4 要么是 Qt 5,而不是两者兼而有之。 Qt4 test 仅用于演示(您可以使用 -DEIGEN_TEST_NOQT=1 禁用它)。 【参考方案1】:

或许可以向下滚动到配置选项,选择qt版本,如下图:

【讨论】:

以上是关于使用 CMake 配置 Eigen 3.3.7 时从 C:/Qt/5.12.4/msvc2015_64/bin/qmake.exe 发现不合适的 Qt 版本“5.12.4”的主要内容,如果未能解决你的问题,请参考以下文章

在ROS使用自己安装的eigen时的cmake错误

在ROS使用自己安装的eigen时的cmake错误

在ROS使用自己安装的eigen时的cmake错误

cmake 使用

Clion / Cmake和Eigen出错

安装 ExternalProject 后避免使用 CMake 子命令