瑾天君 2024-05-07 19:35 采纳率: 33.3%
浏览 10

QT编译CTK的问题

QT在编译CTK框架源码遇到问题,原文CTK编译步骤如下,
https://blog.csdn.net/Mr_robot_strange/article/details/128547331

而我在编译时,遇到以下报错:
C:\Users\Administrator\Desktop\CTK\CMake\ctkMacroValidateBuildOptions.cmake:147: error: string sub-command REPLACE requires at least four arguments. CMakeLists.txt:856 (ctkMacroValidateBuildOptions)

C:\Program Files\CMake\share\cmake-3.26\Modules\ExternalProject.cmake:2807: error: error: could not find git for clone of Log4Qt C:/Program Files/CMake/share/cmake-3.26/Modules/ExternalProject.cmake:4209 (_ep_add_download_command) CMakeExternals/Log4Qt.cmake:65 (ExternalProject_Add) CMake/ctkMacroCheckExternalProjectDependency.cmake:890 (include) CMake/ctkMacroCheckExternalProjectDependency.cmake:964 (ExternalProject_Include_Dependencies) CMake/ctkBlockCheckDependencies.cmake:124 (ExternalProject_Include_Dependencies) CMakeLists.txt:972 (include)

:-1: error: CMake process exited with exit code 1.

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-07 19:35
    关注

    引自免费微信小程序:皆我百晓生

    根据你提供的信息,看起来你在尝试编译CTK( Computational Tomography Knowledge Base)框架,并且遇到了两个主要问题。以下是针对这两个错误的解决建议:

    问题一:ctkMacroValidateBuildOptions.cmake 错误

    这个错误是因为 ctkMacroValidateBuildOptions 函数的参数不正确。这可能是由于CTK源码中的某个地方调用了这个函数,但是传递的参数不足。为了修复这个问题,你需要找到出错的具体位置并检查相关代码。

    1. 打开文件 C:\Users\Administrator\Desktop\CTK\CMake\ctkMacroValidateBuildOptions.cmake
    2. 在第147行附近查找可能引起错误的代码,看看是否有关于 string(REPLACE ...) 的调用。
    3. 检查 string(REPLACE ...) 是否有至少四个参数,包括要替换的字符串、旧值、新值以及目标变量名。

    如果你不确定如何修改,可以参考 string(REPLACE) 的官方文档:CMake String Command

    问题二:找不到 Git 和 ExternalProject 添加依赖项

    这个错误表明 CMake 无法找到 Git,因此无法克隆 Log4Qt。确保 Git 已经安装并且在系统路径中可以被找到。你可以按照以下步骤操作:

    1. 确保已经安装了 Git 并将其添加到系统的PATH环境变量中。如果你还没有安装 Git,可以从 Git官网 下载并安装。
    2. 重新打开命令提示符或终端窗口,测试 Git 是否可被正常识别:
      git --version
      
      如果输出显示了 Git 的版本号,说明 Git 安装和配置成功。
    3. 如果 Git 可用但仍然出现此错误,尝试更新 CMake 到最新版本,因为有时候是由于 CMake 版本与某些模块不兼容导致的。你可以从 CMake下载页面 获取最新版本。
    4. 如果以上步骤都无法解决问题,你可能需要手动下载 Log4Qt,并将其解压到 CMake 外部项目目录(通常是 CMakeExternals)。然后在 CMake/ctkMacroCheckExternalProjectDependency.cmake 文件中,手动指定 Log4Qt 的路径,这样 CMake 就不需要通过 Git 来克隆它。

    关于手动指定路径,可以在 CMakeLists.txt 中类似下面的位置添加路径:

    set(Log4Qt_SOURCE_DIR "path_to_your_Log4Qt_source")
    

    请将 "path_to_your_Log4Qt_source" 替换为实际的 Log4Qt 解压后的路径。

    执行这些步骤后,再次尝试编译 CTK,应该能解决上述问题。如果还有其他错误,欢迎继续提问。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月7日

悬赏问题

  • ¥15 远程访问linux主机超时
  • ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
  • ¥15 CPU卡指令整合指令数据都在图片上
  • ¥15 火车票关联12306问题
  • ¥15 odoo17处理受托加工产品
  • ¥15 如何用MATLAB编码图三的积分
  • ¥15 圆孔衍射光强随孔径变化
  • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
  • ¥15 ESP-PROG配置错误,ALL ONES
  • ¥15 结构功能耦合指标计算