OpenPose: E0312 / 没有合适的用户定义的从 "fLS::clstring" 到 "const op::String" 的转换和其他错误
OpenPose: E0312 / no suitable user-defined conversion from "fLS::clstring" to "const op::String" and other errors
几周前我的 NB 崩溃了,而在我的 Linux Ubuntu 上运行良好的东西现在却不行了。我需要安装 OpenPose 并使其在我的第二个笔记本(我工作时用的笔记本)上运行。不幸的是,我这里只有Windows 10,无法安装其他OS。我无法使 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。但是,如何解决呢?
非常感谢。
再见
我假设您使用的是最新的 OpenPose。从 OpenPose 1.6.0 开始,在代码中进行了一些更改,例如 op::String
作为 std::string
的容器。
鉴于问题中的信息非常有限,我提出以下建议
解决方法-
- 您可以通过执行
git checkout tags/v1.5.1
来检查 OpenPose 1.5.1
- 如果要坚持使用最新版本,请使用
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 等,我将不胜感激
几周前我的 NB 崩溃了,而在我的 Linux Ubuntu 上运行良好的东西现在却不行了。我需要安装 OpenPose 并使其在我的第二个笔记本(我工作时用的笔记本)上运行。不幸的是,我这里只有Windows 10,无法安装其他OS。我无法使 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。但是,如何解决呢?
非常感谢。 再见
我假设您使用的是最新的 OpenPose。从 OpenPose 1.6.0 开始,在代码中进行了一些更改,例如 op::String
作为 std::string
的容器。
鉴于问题中的信息非常有限,我提出以下建议 解决方法-
- 您可以通过执行
git checkout tags/v1.5.1
来检查 OpenPose 1.5.1
- 如果要坚持使用最新版本,请使用
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 等,我将不胜感激