如何在CMake中获取qhelpgenerator路径生成Qt Help格式文档?
解决方案
你可以通过CMake的Qt导入目标直接提取Qt5::qhelpgenerator(Qt5)或Qt6::qhelpgenerator(Qt6)获取qhelpgenerator的绝对路径,具体操作步骤如下:
步骤1:修改CMakeLists.txt
在原有CMake配置中补充Qt查找逻辑,确保查找Qt的Help组件,再提取qhelpgenerator的路径:
cmake_minimum_required (VERSION 3.21.0) find_package(Doxygen REQUIRED dot) # 按需替换为你使用的Qt版本,必须引入Help组件 # Qt5写法: find_package(Qt5 COMPONENTS Help REQUIRED) # Qt6写法: # find_package(Qt6 COMPONENTS Help REQUIRED) # 提取qhelpgenerator可执行文件的绝对路径 if(QT_VERSION_MAJOR EQUAL 5) get_target_property(QHG_EXECUTABLE_PATH Qt5::qhelpgenerator IMPORTED_LOCATION) elseif(QT_VERSION_MAJOR EQUAL 6) get_target_property(QHG_EXECUTABLE_PATH Qt6::qhelpgenerator IMPORTED_LOCATION) endif() set (DOXYGEN_HIDDEN_SYMBOLS "") if (DOXYGEN_FOUND) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) doxygen_add_docs( myprograme-manual ${CMAKE_CURRENT_SOURCE_DIR}/en ) endif(DOXYGEN_FOUND)
注意:若CMake配置时提示找不到Qt Help组件,说明当前设备的Qt安装未包含帮助工具,重新安装Qt时勾选Help相关组件即可。
步骤2:修改Doxyfile配置
将Doxyfile中QHG_LOCATION的配置行替换为以下内容,CMake执行configure_file时会自动填充路径:
QHG_LOCATION = @QHG_EXECUTABLE_PATH@
配置完成后重新执行CMake配置,生成的build目录下的Doxyfile中QHG_LOCATION会被替换为当前设备qhelpgenerator的真实路径,编译文档目标即可正常生成.qch帮助文件。
内容的提问来源于stack exchange,提问作者Jepessen
相关产品推荐
相关产品推荐

