cmakeautomoc on不生成moc文件
    问题描述:使用cmake构建项目时,设置了AUTOMOC,但是运行后却没有生成moc文件。
    解决方法:可以尝试以下几种方法:
    1. 确认是否有使用Q_OBJECT宏声明的类。只有使用了Q_OBJECT宏声明的类,才会自动生成moc文件。
    2. 检查文件中是否添加了AUTOMOC选项。AUTOMOC选项需要添加到add_library或add_executable命令中,才能自动为项目生成moc文件。
    3. 检查cmake版本是否支持AUTOMOC。AUTOMOC是从CMake 2.6.0版本开始支持的,如果cmake版本过低,可能会导致AUTOMOC无法正常工作。
    4. 尝试手动添加moc文件的生成规则。在中添加以下内容:
    set(CMAKE_AUTOMOC ON)
    set(CMAKE_AUTORCC ON)
    set(CMAKE_AUTOUIC ON)
    qt5_wrap_cpp(MOC_SOURCES ${HEADERS})
    add_library(${PROJECT_NAME} ${SRC_SOURCES} ${MOC_SOURCES})
    其中${HEADERS}表示需要生成moc文件的头文件,${SRC_SOURCES}表示项目源文件。
    5. 检查生成的moc文件路径是否正确。在中添加以下内容:
    set(CMAKE_INCLUDE_CURRENT_DIR ON)cmake如何使用
    set(CMAKE_AUTOMOC_RELAXED_MODE ON)
    set(CMAKE_AUTOMOC_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/moc)
    message('MOC GENERATED: ${CMAKE_CURRENT_BINARY_DIR}/moc')
    以上方法中,第1、2、3种方法适用于大多数情况,第4、5种方法则是一些特殊情况下的解决方法。如果以上方法都无法解决问题,可以考虑重新编译项目或者升级cmake版本。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。