0

几周前我的笔记本电脑崩溃了,在我的 Linux Ubuntu 上运行良好的东西现在不行了。我需要在我的第二个笔记本(我工作的那个)上安装 OpenPose 并使其工作。不幸的是,我这里只有 Windows 10,无法安装其他操作系统。我无法使 CMake 正常工作,所以我抓住了最后的机会,我试图在 Visual Studio 中运行它。我已将所有库、可执行文件和包含添加到我的项目中,并尝试运行我的项目。而现在,一些 GFLAGS 无法正常工作。现在,有以下两种类型的一些错误:

E0312 / no suitable user-defined conversion from "fLS::clstring" to "const op::String"

C++ no operator matches these operands
    operand types are: std::tuple<op::ProducerType &, std::string &> = std::pair<op::ProducerType, op::String>

你能帮我解决这个错误吗?我知道出了什么问题,但我该如何解决呢?我认为它可能是旧笔记本和新笔记本之间的另一个版本的 OpenPose。但是,如何解决呢?

非常感谢。再见

4

1 回答 1

1

我假设您使用的是最新的 OpenPose。从OpenPose 1.6.0开始,对代码进行了一些更改,op::String例如std::string.

鉴于问题中的信息非常有限,我提出以下解决方法 -

  1. 您可以通过执行签出 OpenPose 1.5.1git checkout tags/v1.5.1
  2. 如果您想坚持使用最新版本,请使用op::String功能。下面给出了一个显示比较的示例 -
    // Older versions, i.e., OpenPose version < 1.6
    const auto outputSize = op::flagsToPoint(FLAGS_output_resolution, "-1x-1");
    // Newer versions, i.e., OpenPose version >= 1.6
    const auto outputSize = op::flagsToPoint(op::String(FLAGS_output_resolution), "-1x-1");
    

最后,如果您能提供其他详细信息,例如 OpenPose 版本、MWE等,我将不胜感激。

于 2020-05-07T05:47:11.177 回答