gpt4 book ai didi

c++ - pugixml 包含目录设置为未从 pugixml 配置 cmake 文件中找到

转载 作者:行者123 更新时间:2023-11-28 04:18:47 25 4
gpt4 key购买 nike

我正在尝试编译这个项目:https://github.com/computationalpathologygroup/ASAP.git从源头。Pugixml 是一个依赖

我已经从源代码构建了 pugixml 并设置了 PugiXML_DIR 和 PUGIXML_INCLUDE_DIR 它仍然给我错误:“CMake 错误:此项目中使用了以下变量,但它们被设置为 NOTFOUND。”

我尝试过的事情:

  • 我在 Windows 上使用 cmake 3.14 和 visual studio 2017 执行此操作。
  • 我已经成功地从源代码构建了 pugixml 并包含了 .lib 文件
  • 我已尝试包含和排除 PUGIXML_INCLUDE_DIR、PUGIXML_LIBRARY、PugiXML_DIR 的组合。

这是我得到的错误:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
cpp/ASAP/annotation/PUGIXML_INCLUDE_DIR
used as include directory in directory
/cpp/ASAP/annotation
cpp/ASAP/multiresolutionimageinterface/PUGIXML_INCLUDE_DIR
used as include directory in directory cpp/ASAP/multiresolutionimageinterface

其他信息:设置 PugiXML_DIR 是强制性的,cmake 在该目录中查找名为“pugixml-config.cmake”的文件。并且配置 cmake 文件应该指向已编译的 lib 文件。但是当它找不到时,我只是将编译的 lib 文件复制到 pugixml-config.cmake 指向的位置。

最佳答案

在 4.04.2019 之前的 ASAP 版本中,他们玩肮脏的游戏,从 IMPORTED 目标中提取包含目录。 annotation/CMakeLists.txt:30 :

get_target_property(PUGIXML_INCLUDE_DIR pugixml INTERFACE_INCLUDE_DIRECTORIES)

在某些情况下,这会导致将 PUGIXML_INCLUDE_DIR 变量设置为“-NOTFOUND”,因此您会从 CMake 收到相应的错误消息。

在提交中 36d8bd75他们添加了 FindPugiXML.cmake 脚本,该脚本处理 find_package(PugiXML) 调用而不是 PugiXML 附带的配置脚本。在该查找脚本中,他们获得了带有 find_path 的包含目录,这看起来更自然:

find_path(PugiXML_INCLUDE_DIR pugixml.hpp)

因为在较新的 ASAP 版本中,不再使用与 PugiXML 一起提供的配置脚本 (pugixml-config.cmake),因此无法使用 PugiXML_DIR 提示 PugiXML 的位置或 PugiXML_ROOT。如果 PugiXML 安装到非系统默认位置,可以简单地将 PugiXML_INCLUDE_DIR 变量设置为 PugiXML 包含目录。

关于c++ - pugixml 包含目录设置为未从 pugixml 配置 cmake 文件中找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55955889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com