无法在Ubuntu 20.04.1 LTS上编译PDDL 2.1 Temporal Planner POPF



我需要一个支持PDDL中持续操作的时间规划器,我正在遵循这个youtube指南,但我无法使popf规划器工作。我得到这个错误时,使popf:

/home/virginia/Scaricati/popf/src/VALfiles/TimSupport.cpp:1392:36:   required from here
/usr/include/c++/9/bits/stl_tree.h:1117:16: error: no type named ‘value_type’ in ‘struct std::iterator_traits<TIM::getConditionally<std::_Rb_tree_const_iterator<TIM::Property*> > >’
1117 |  __enable_if_t<!__same_value_type<_InputIterator>::value>
|                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/VALfiles/CMakeFiles/Inst.dir/build.make:154: src/VALfiles/CMakeFiles/Inst.dir/TimSupport.o] Errore 1
make[1]: *** [CMakeFiles/Makefile2:213: src/VALfiles/CMakeFiles/Inst.dir/all] Errore 2

我使用了这些命令:mkdir构建cd构建cmake path_to_src_folder使

安装过程后,我希望有文件'build/popf/popf-clp'作为popf的二进制文件。显然,因为我有一个错误,我没有它。

我使用的是Ubuntu 20.04.1 LTS.

我认为这与VAL代码相当旧并且与较新的c++库不兼容有关。尝试把它放在一个奇点文件(非常类似于Docker,但出于一些性能原因AI规划社区更喜欢奇点),它使用Ubuntu 16.04作为它的基础镜像。然后改变你的计划器调用脚本来运行奇点图像(你可以在VSCode中设置)。

参考这个非常相似的问题(SMTPlan和POPF使用相同的VAL代码,这给你的问题):https://github.com/KCL-Planning/SMTPlan/issues/10 issuecomment - 660515454

下面是对我使用过的Singularity文件的引用,但是您需要将其更改为包含您的POPF编译步骤而不是SMTPlan。

我想我有完全相同的错误。最后,我尝试了这个"第一次尝试"编译的分叉版本。在我的Ubuntu 22.04上(在apt安装依赖之后)https://github.com/DaniGarciaLopez/popf

最新更新