不确定这是问我的问题的正确位置,但我想尝试一下,因为过去有些人已经设法在这里帮助我。
我正在尝试在我的计算机上运行此软件:github.com/sergeytulyakov/FaceCept3D
我做了什么:
sudo apt-get install libpcl-dev
mkdir FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/build
cd FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/build
cmake ..
这有效(参见输出这里),但下一步make
失败:
$ make
-- Build files have been written to: /home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/build
yalishanda@yalishanda-ThinkPad-X200:~/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/build$ make
Scanning dependencies of target HeadPoseEstimationFramework
[ 3%] Building CXX object CMakeFiles/HeadPoseEstimationFramework.dir/Detector/DepthFrameDetector/localFunctions.cpp.o
<command-line>:0:15: warning: ISO C++11 requires whitespace after the macro name
[ 6%] Building CXX object CMakeFiles/HeadPoseEstimationFramework.dir/Detector/DepthFrameDetector/LeafNode.cpp.o
<command-line>:0:15: warning: ISO C++11 requires whitespace after the macro name
[ 9%] Building CXX object CMakeFiles/HeadPoseEstimationFramework.dir/Detector/DepthFrameDetector/DepthDetector.cpp.o
<command-line>:0:15: warning: ISO C++11 requires whitespace after the macro name
[ 12%] Building CXX object CMakeFiles/HeadPoseEstimationFramework.dir/Detector/DepthFrameDetector/Tree.cpp.o
<command-line>:0:15: warning: ISO C++11 requires whitespace after the macro name
[ 15%] Building CXX object CMakeFiles/HeadPoseEstimationFramework.dir/Detector/DepthFrameDetector/csvMat.cpp.o
<command-line>:0:15: warning: ISO C++11 requires whitespace after the macro name
[ 18%] Building CXX object CMakeFiles/HeadPoseEstimationFramework.dir/Processor/TrackingProcessor.cpp.o
<command-line>:0:15: warning: ISO C++11 requires whitespace after the macro name
In file included from /home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Tracker/ICPTemplateTracker.h:15:0,
from /home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Processor/TrackingProcessor.h:11,
from /home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Processor/TrackingProcessor.cpp:1:
/usr/include/pcl-1.7/pcl/visualization/cloud_viewer.h:202:14: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
std::auto_ptr<CloudViewer_impl> impl_;
^
In file included from /usr/include/c++/5/memory:81:0,
from /usr/include/boost/config/no_tr1/memory.hpp:21,
from /usr/include/boost/smart_ptr/shared_ptr.hpp:23,
from /usr/include/boost/shared_ptr.hpp:17,
from /usr/include/pcl-1.7/pcl/PCLPointField.h:11,
from /usr/include/pcl-1.7/pcl/point_traits.h:48,
from /usr/include/pcl-1.7/pcl/register_point_struct.h:57,
from /usr/include/pcl-1.7/pcl/point_types.h:44,
from /home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Processor/TrackingProcessor.h:6,
from /home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Processor/TrackingProcessor.cpp:1:
/usr/include/c++/5/bits/unique_ptr.h:49:28: note: declared here
template<typename> class auto_ptr;
^
In file included from /home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Processor/TrackingProcessor.cpp:22:0:
/home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Helpers/HpeHelpers.h: In function ‘Eigen::Vector3f hpe::GetNormal(typename pcl::PointCloud<PointT>::Ptr, int)’:
/home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Helpers/HpeHelpers.h:23:9: error: need ‘typename’ before ‘pcl::search::KdTree<TPoint>::Ptr’ because ‘pcl::search::KdTree<TPoint>’ is a dependent scope
pcl::search::KdTree<PointType>::Ptr search(new pcl::search::KdTree<PointType>);
^
/home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Helpers/HpeHelpers.h:23:45: error: expected ‘;’ before ‘search’
pcl::search::KdTree<PointType>::Ptr search(new pcl::search::KdTree<PointType>);
^
/home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Helpers/HpeHelpers.h:32:28: error: ‘search’ was not declared in this scope
ne.setSearchMethod(search);
^
/home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Helpers/HpeHelpers.h:32:28: note: suggested alternatives:
In file included from /usr/include/c++/5/algorithm:62:0,
from /usr/include/boost/smart_ptr/shared_ptr.hpp:37,
from /usr/include/boost/shared_ptr.hpp:17,
from /usr/include/pcl-1.7/pcl/PCLPointField.h:11,
from /usr/include/pcl-1.7/pcl/point_traits.h:48,
from /usr/include/pcl-1.7/pcl/register_point_struct.h:57,
from /usr/include/pcl-1.7/pcl/point_types.h:44,
from /home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Processor/TrackingProcessor.h:6,
from /home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Processor/TrackingProcessor.cpp:1:
/usr/include/c++/5/bits/stl_algo.h:4062:5: note: ‘std::search’
search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
^
In file included from /usr/include/pcl-1.7/pcl/search/kdtree.h:43:0,
from /home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Tracker/ICPTemplateTracker.h:14,
from /home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Processor/TrackingProcessor.h:11,
from /home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Processor/TrackingProcessor.cpp:1:
/usr/include/pcl-1.7/pcl/search/search.h:50:3: note: ‘pcl::search’
{
^
In file included from /home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Processor/TrackingProcessor.cpp:22:0:
/home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Helpers/HpeHelpers.h: In instantiation of ‘Eigen::Vector3f hpe::GetNormal(typename pcl::PointCloud<PointT>::Ptr, int) [with PointType = pcl::PointXYZRGBA; Eigen::Vector3f = Eigen::Matrix<float, 3, 1>; typename pcl::PointCloud<PointT>::Ptr = boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >]’:
/home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Processor/TrackingProcessor.cpp:86:85: required from here
/home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Helpers/HpeHelpers.h:23:9: error: dependent-name ‘pcl::search::KdTree<TPoint>::Ptr’ is parsed as a non-type, but instantiation yields a type
pcl::search::KdTree<PointType>::Ptr search(new pcl::search::KdTree<PointType>);
^
/home/yalishanda/Downloads/FaceCept3D-master/FaceCept3D/HeadPoseEstimationFramework/Helpers/HpeHelpers.h:23:9: note: say ‘typename pcl::search::KdTree<TPoint>::Ptr’ if a type is meant
CMakeFiles/HeadPoseEstimationFramework.dir/build.make:182: recipe for target 'CMakeFiles/HeadPoseEstimationFramework.dir/Processor/TrackingProcessor.cpp.o' failed
make[2]: *** [CMakeFiles/HeadPoseEstimationFramework.dir/Processor/TrackingProcessor.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/HeadPoseEstimationFramework.dir/all' failed
make[1]: *** [CMakeFiles/HeadPoseEstimationFramework.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
this doesn t work: http://paste.ubuntu.com/25168498/
And I don't really understand why it doesn't work. The code is provided as is on github, no issues related to what I am facing have been reported as far as I can see. So I guess I am doing something incorrectly.