cmake提示Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x

本文详细介绍了如何在系统中正确安装并配置QT开发环境。首先确保已安装QT且版本为4.x,接着通过yum命令安装qt-devel包,最后完成安装后需再次执行cmake命令以确保正确配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、确认已经安装了QT且版本为4.x
2、yum install qt-devel
3、安装完qt-devel之后再次执行cmake

-- Try 1 failed CMake Warning at cmake/OpenCVDownload.cmake:248 (message): IPPICV: Download failed: 28;"Timeout was reached" For details please refer to the download log file: /home/charon/Opencv/opencv-4.8.0/build/CMakeDownloadLog.txt Call Stack (most recent call first): 3rdparty/ippicv/ippicv.cmake:37 (ocv_download) cmake/OpenCVFindIPP.cmake:259 (download_ippicv) cmake/OpenCVFindLibsPerf.cmake:12 (include) CMakeLists.txt:756 (include) -- Could NOT find CUDNN: Found unsuitable version "..", but required is at least "7.5" (found /usr/lib/x86_64-linux-gnu/libcudnn.so.8.9.0) -- CUDA detected: 12.5 -- CUDA: Using CUDA_ARCH_BIN=8.9 -- CUDA NVCC target flags: -gencode;arch=compute_89,code=sm_89;-D_FORCE_INLINES -- Could not find OpenBLAS include. Turning OpenBLAS_FOUND off -- Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off -- Could NOT find Atlas (missing: Atlas_CLAPACK_INCLUDE_DIR) -- Could NOT find Java (missing: Java_JAR_EXECUTABLE Java_JAVAC_EXECUTABLE Java_JAVADOC_EXECUTABLE) (found version "11.0.26") -- Could NOT find JNI (missing: JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH) -- VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file CMake Error at cmake/OpenCVModule.cmake:274 (message): No modules has been found: /home/ub/opencv-4.8.0/opencv_contrib_4.8.0/modules Call Stack (most recent call first): cmake/OpenCVModule.cmake:356 (_glob_locations) cmake/OpenCVModule.cmake:408 (ocv_glob_modules) CMakeLists.txt:967 (ocv_register_modules) -- Checking for module 'gtk+-2.0' -- No package 'gtk+-2.0' found -- Checking for module 'libavresample' -- No package 'libavresample' found CMake Error at modules/core/CMakeLists.txt:54 (message): CUDA: OpenCV requires enabled 'cudev' module from 'opencv_contrib' repository: https://github.com/opencv/opencv_contrib -- Configuring incomplete, errors occurred! See also "/home/charon/Opencv/opencv-4.8
04-01
<think>我们正在处理用户在编译stdr_simulator时遇到的CMake错误:Found unsuitable Qt version "5.12.8", requires Qt 4.x。根据引用内容,这个问题通常是因为项目要求Qt4,但系统默认的Qt版本是Qt5。以下是解决方案: ### 解决方案:安装Qt4并配置CMake使用Qt4 #### 1. **安装Qt4开发包** 在Ubuntu上安装Qt4: ```bash sudo apt-get install qt4-default ``` #### 2. **设置Qt4为默认版本(可选)** 如果系统同时安装了Qt4Qt5,可以通过以下命令设置默认使用Qt4: ```bash sudo update-alternatives --config qmake ``` 然后选择对应的Qt4版本(通常路径为`/usr/bin/qmake-qt4`)。 #### 3. **在CMake中显式指定Qt4路径** 在项目的CMake配置中,可以显式指定Qt4的路径。根据引用[3]中的方法,在CMakeLists.txt中添加以下代码(替换为实际Qt4路径): ```cmake set(QT_QMAKE_EXECUTABLE "/usr/bin/qmake-qt4") set(QT_MOC_EXECUTABLE "/usr/bin/moc-qt4") set(QT_RCC_EXECUTABLE "/usr/bin/rcc-qt4") set(QT_UIC_EXECUTABLE "/usr/bin/uic-qt4") ``` 或者,在运行`catkin_make`之前通过CMake变量传递: ```bash catkin_make -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake-qt4 \ -DQT_MOC_EXECUTABLE=/usr/bin/moc-qt4 \ -DQT_RCC_EXECUTABLE=/usr/bin/rcc-qt4 \ -DQT_UIC_EXECUTABLE=/usr/bin/uic-qt4 ``` #### 4. **修改项目CMakeLists.txt(如果上述方法无效)** 根据引用[3]和[4],在项目CMakeLists.txt中强制查找Qt4: ```cmake find_package(Qt4 REQUIRED) ``` 并确保在查找Qt之前设置上述变量。 #### 5. **完全移除Qt5(不推荐)** 如果项目完全不需要Qt5,可以尝试卸载Qt5(但可能影响其他软件): ```bash sudo apt-get remove qt5-default ``` 然后重新安装Qt4(如步骤1)。 ### 验证方法 运行以下命令检查qmake版本: ```bash qmake --version ``` 输出应为Qt4版本(如4.8.7)。 ### 注意事项 - 如果项目同时需要Qt4Qt5,建议使用虚拟环境或容器隔离编译环境。 - STDR仿真器较旧,可能只支持Qt4[^4]。 §§相关问题§§ 1. 如何在同一系统中同时管理多个Qt版本? 2. 使用Qt4开发ROS项目有哪些注意事项? 3. 如何创建隔离的编译环境以避免库版本冲突?</think>### 解决 CMake 错误:Found unsuitable Qt version "5.12.8", requires Qt 4.x 此错误发生在编译需要 Qt4 的项目(如 `stdr_simulator`)时,系统检测到的 Qt5 版本不兼容。以下是完整的解决方案: #### 1. **安装 Qt4 开发包** 首先确保 Qt4 已安装: ```bash sudo apt-get update sudo apt-get install qt4-default libqt4-dev ``` #### 2. **设置 Qt4 为默认版本** 通过 `update-alternatives` 配置系统默认使用 Qt4: ```bash sudo update-alternatives --config qmake ``` 选择 Qt4 对应的选项(通常为 `/usr/bin/qmake-qt4`) #### 3. **在 CMake 中显式指定 Qt4** 在编译命令中强制指定 Qt4 路径(根据您的实际路径调整): ```bash catkin_make -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake-qt4 \ -DQT_MOC_EXECUTABLE=/usr/bin/moc-qt4 \ -DQT_UIC_EXECUTABLE=/usr/bin/uic-qt4 ``` #### 4. **修改项目 CMakeLists.txt(可选)** 如果上述无效,在项目的 `CMakeLists.txt` 中添加: ```cmake # 在 find_package() 之前添加 set(QT_QMAKE_EXECUTABLE "/usr/bin/qmake-qt4") set(QT_MOC_EXECUTABLE "/usr/bin/moc-qt4") set(QT_UIC_EXECUTABLE "/usr/bin/uic-qt4") find_package(Qt4 REQUIRED) # 强制使用 Qt4 ``` #### 5. **完全移除 Qt5(最后手段)** ⚠️ 注意:可能影响其他依赖 Qt5 的软件 ```bash sudo apt-get remove qt5-default sudo apt-get autoremove sudo apt-get install qt4-default ``` ### 验证解决方案 ```bash # 检查 qmake 版本 qmake --version # 应输出:QMake version 2.01a (Qt 4.x.x) # 重新编译 catkin_make clean catkin_make ``` ### 故障排除表 | 现象 | 解决方案 | |------|----------| | 找不到 qmake-qt4 | 运行 `sudo apt-get install qt4-qmake` | | CMake 仍报 Qt5 错误 | 在 CMake 命令添加 `-DFORCE_QT4=ON` | | 编译后 GUI 异常 | 安装兼容库:`sudo apt-get install libqt4-opengl` | > **关键提示**:STDR 仿真器等旧版 ROS 包通常需要 Qt4[^4]。如果必须保留 Qt5,考虑使用 Docker 容器隔离编译环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值