Qt6项目编译报错:clock_monotonic特性需从OFF设为ON
Qt6编译报错:clock_monotonic特性定义冲突解决
错误信息
/opt/homebrew/lib/cmake/Qt6/QtFeature.cmake:1249: error: Feature clock_monotonic is already defined to be "OFF" and should now be set to "ON" when importing features from Qt6::Core. /opt/homebrew/lib/cmake/Qt6Core/Qt6CoreConfig.cmake:118 (qt_make_features_available) /Users/me/Qt/Tools/CMake/CMake.app/Contents/share/cmake-3.21/Modules/CMakeFindDependencyMacro.cmake:47 (find_package) /opt/homebrew/lib/cmake/Qt6/QtPublicDependencyHelpers.cmake:14 (find_dependency) /opt/homebrew/lib/cmake/Qt6Widgets/Qt6WidgetsDependencies.cmake:96 (_qt_internal_find_dependencies) /opt/homebrew/lib/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake:40 (include) /opt/homebrew/lib/cmake/Qt6/Qt6Config.cmake:213 (find_package) CMakeLists.txt:14 (find_package)
解决步骤
清理旧构建缓存
删除项目的build目录,重新创建后执行CMake配置和构建;或者直接运行cmake --build . --clean-first强制清理后重新构建。检查CMakeLists.txt配置
确保没有手动设置过clock_monotonic相关的CMake变量,同时确认Qt6的引入方式正确,示例:find_package(Qt6 REQUIRED COMPONENTS Core Widgets) target_link_libraries(你的项目名称 PRIVATE Qt6::Core Qt6::Widgets)解决Qt版本冲突
如果你同时安装了Homebrew版Qt和Qt官方安装包,容易出现版本冲突:- 可以在执行CMake时指定官方Qt的路径:
cmake .. -DCMAKE_PREFIX_PATH=/Users/me/Qt/6.x.x/macos - 或者卸载Homebrew版Qt:
brew uninstall qt6
- 可以在执行CMake时指定官方Qt的路径:
升级CMake版本
当前使用的CMake 3.21版本较低,Qt6对CMake版本有要求,建议升级到3.24及以上版本,避免兼容性问题。
内容的提问来源于stack exchange,提问作者Tikhon
相关产品推荐
相关产品推荐

