【发布时间】:2018-08-23 07:22:11
【问题描述】:
当我安装 cgi 3.2.9 时,它列出了以下错误:
Making install in cgicc make[1]: Entering directory
'/root/learncpp/webprogramming/cgicc-3.2.9/cgicc' /bin/bash
../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I..
-I.. -x c++ -Wall -W -pedantic -g -O2 -MT libcgicc_la-Cgicc.lo -MD -MP -MF .deps/libcgicc_la-Cgicc.Tpo -c -o libcgicc_la-Cgicc.lo `test -f 'Cgicc.cpp' || echo './'`Cgicc.cpp libtool: compile: g++
-DHAVE_CONFIG_H -I. -I.. -I.. -x c++ -Wall -W -pedantic -g -O2 -MT libcgicc_la-Cgicc.lo -MD -MP -MF .deps/libcgicc_la-Cgicc.Tpo -c
Cgicc.cpp -fPIC -DPIC -o .libs/libcgicc_la-Cgicc.o Cgicc.cpp: In
member function ‘bool cgicc::Cgicc::findEntries(const string&, bool,
std::vector<cgicc::FormEntry>&) const’: Cgicc.cpp:328:54: error:
call of overloaded
‘copy_if(std::vector<cgicc::FormEntry>::const_iterator,
std::vector<cgicc::FormEntry>::const_iterator,
std::back_insert_iterator<std::vector<cgicc::FormEntry> >,
cgicc::FE_nameCompare)’ is ambiguous
std::back_inserter(result),FE_nameCompare(param));
^ Cgicc.cpp:99:3: note: candidate: Out cgicc::copy_if(In, In, Out,
Pred) [with In = __gnu_cxx::__normal_iterator<const
cgicc::FormEntry*, std::vector<cgicc::FormEntry> >; Out =
std::back_insert_iterator<std::vector<cgicc::FormEntry> >; Pred =
cgicc::FE_nameCompare] copy_if(In first, ^~~~~~~ In file
included from /usr/include/c++/7/algorithm:62:0,
from Cgicc.cpp:29: /usr/include/c++/7/bits/stl_algo.h:737:5: note: candidate: _OIter
std::copy_if(_IIter, _IIter, _OIter, _Predicate) [with _IIter =
__gnu_cxx::__normal_iterator<const cgicc::FormEntry*, std::vector<cgicc::FormEntry> >; _OIter =
std::back_insert_iterator<std::vector<cgicc::FormEntry> >;
_Predicate = cgicc::FE_nameCompare]
copy_if(_InputIterator __first, _InputIterator __last,
^~~~~~~ Cgicc.cpp:332:56: error: call of overloaded ‘copy_if(std::vector<cgicc::FormEntry>::const_iterator,
std::vector<cgicc::FormEntry>::const_iterator,
std::back_insert_iterator<std::vector<cgicc::FormEntry> >,
cgicc::FE_valueCompare)’ is ambiguous
std::back_inserter(result), FE_valueCompare(param));
^ Cgicc.cpp:99:3: note: candidate: Out cgicc::copy_if(In, In, Out,
Pred) [with In = __gnu_cxx::__normal_iterator<const
cgicc::FormEntry*, std::vector<cgicc::FormEntry> >; Out =
std::back_insert_iterator<std::vector<cgicc::FormEntry> >; Pred =
cgicc::FE_valueCompare] copy_if(In first, ^~~~~~~ In file
included from /usr/include/c++/7/algorithm:62:0,
from Cgicc.cpp:29: /usr/include/c++/7/bits/stl_algo.h:737:5: note: candidate: _OIter
std::copy_if(_IIter, _IIter, _OIter, _Predicate) [with _IIter =
__gnu_cxx::__normal_iterator<const cgicc::FormEntry*, std::vector<cgicc::FormEntry> >; _OIter =
std::back_insert_iterator<std::vector<cgicc::FormEntry> >;
_Predicate = cgicc::FE_valueCompare]
copy_if(_InputIterator __first, _InputIterator __last,
^~~~~~~ Makefile:417: recipe for target 'libcgicc_la-Cgicc.lo' failed make[1]: *** [libcgicc_la-Cgicc.lo] Error 1 make[1]: Leaving
directory '/root/learncpp/webprogramming/cgicc-3.2.9/cgicc'
Makefile:337: recipe for target 'install-recursive' failed make: ***
[install-recursive] Error 1
【问题讨论】:
-
遇到同样的问题,找到答案了吗?使用树莓派