编译项目时出现错误https://svn.openslam.org/data/svn/hog-man
Errors when compiling the project https://svn.openslam.org/data/svn/hog-man
我正在使用安装说明在linux GNU c++下编译hog-man
@verbatim
$ svn co http://www.openslam.org/data/svn/hog-man
$ cd hog-man/trunk/
$ bash # if not already running
$ source setlibpath
$ ./configure
$ make
@endverbatim
安装Csparse
运行最后一步时出现错误:
from hogman2d.cpp:18:
graph_optimizer_chol.hpp: In member function ‘virtual typename
PG::Edge* AISNavigation::CholOptimizer<PG>::addEdge(typename
PG::Vertex*, typename PG::Vertex*, const typename
PG::TransformationType&, const typename PG::InformationType&)’:
graph_optimizer_chol.hpp:284:25: error: expected primary- expression before ‘&&’ token
if (_guessOnEdges && to->edges().size()==1 && ! to->fixed()){
^
Failed command was:
g++ -fPIC -DLINUX -I/home/sophie/hog-man/trunk
-D_MY_CAST_=reinterpret_cast -I/home/sophie/hog-man/trunk/aislib -fPIC
-O3 -Wall -frtti -mmmx -msse3 -c hogman2d.cpp -o hogman2d.o
in directory /home/sophie/hog-man/trunk/aislib/graph_optimizer_hogman
../../build_tools/Makefile.generic-shared-object:55: recipe for target 'hogman2d.o' failed
make[2]: *** [hogman2d.o] Error 1
Compilation in graph_optimizer_hogman failed.
../build_tools/Makefile.subdirs:10: recipe for target 'all' failed
make[1]: *** [all] Error 1
Compilation in aislib failed.
build_tools/Makefile.subdirs:10: recipe for target 'all' failed
make: *** [all] Error 1
表达式_guessOnEdges有什么问题?
在graphoptimizercholl .h中以如下方式声明:
protected:
using typename GraphOptimizer<PG>::_guessOnEdges;
在GraphOptimizer.h中是这样定义的:
public:
GraphOptimizer();
virtual ~GraphOptimizer();
virtual bool initialize(int rootNode=-1)=0;
virtual int optimize(int iterations, bool online=false)=0;
double chi2() const;
static double chi2(const typename PG::Edge* e);
static void absChi(double& rotationalError, double& translationalError, typename PG::Edge* e_);
void chiStat(ChiStatMap& emap);
void sqError(double& are, double& ate, double& mte, double& mre, const typename PG::EdgeSet* eset=0) const;
virtual const bool& verbose() const { return _verbose; }
virtual bool& verbose() { return _verbose; }
virtual const bool& visualizeToStdout() const { return _visualizeToStdout; }
virtual bool& visualizeToStdout() { return _visualizeToStdout; }
virtual const bool& guessOnEdges() const { return _guessOnEdges;}
virtual bool& guessOnEdges() { return _guessOnEdges;}
virtual void backup();
virtual void restore();
protected:
virtual void backupSubset(typename PG::VertexSet& vset);
virtual void backupSubset(Graph::VertexSet& vset);
virtual void restoreSubset(typename PG::VertexSet& vset);
virtual void restoreSubset(Graph::VertexSet& vset);
bool _verbose;
bool _visualizeToStdout;
bool _guessOnEdges;
using PG::_vertices;
using PG::_edges;
};
在GraphOptimizer.hpp: template <typename PG>
GraphOptimizer<PG>::GraphOptimizer() :
PG(),
_verbose(false), _visualizeToStdout(false), _guessOnEdges(false)
{
}
和在graphoptimizercl .cpp:
56: bool initFromObservations = _guessOnEdges;
所以它被定义了,但是它在哪里初始化,问题是当这个方法执行时它没有初始化吗?
if (_guessOnEdges && to->edges().size()==1 && ! to->fixed()){
to->transformation=from->transformation*mean;
}
return e;
}
using typename GraphOptimizer<PG>::_guessOnEdges;
当你用typename
声明某个东西时,这意味着它是一个类型。
不能在表达式中使用类型。
您也不能在属性上使用using
。
- 删除
using
语句 - 在表达式中使用
this->_guessOnEdges
这给你:
if (this->_guessOnEdges && to->edges().size()==1 && ! to->fixed()){
to->transformation=from->transformation*mean;
}
这里的this
是必要的,它告诉编译器_guessOnEdges
是一个依赖符号,在模板实例化之前不能解析。
相关文章:
- 从QT Creator创建Unfuddle SVN存储库
- SVN和SFTP与eclipse同步
- SVN回购 http://server/ 有什么区别../ 和 svn://server/ ./.
- C::B Projet,非必要文件 SVN
- 使用Jenkins、内部版本号和svn修订版管理程序版本
- 在应用程序版本中使用svn修订号
- 从Starteam迁移到SVN
- svn - OS x 上的 Qt Creator 版本错误
- 使用 iOS 或 c/c++ 访问 SVN 或远程 Git 存储库等
- 我应该如何最好地在OS X上从svn安装和使用libc ++
- C++11将传统指针转换为智能指针.使用来自llvm的最新SVN-Clang和libc++
- 图标叠加类似SVN
- 如何让SonarQube与SVN服务器v1.6.11一起工作
- 如何组织一个SVN存储库的c++代码
- 编写一个围绕SVN和Git的包装器,在服务器上执行
- 在使用ide进行开发和测试时,SVN存储源代码的最佳实践是什么?
- 是我还是部分Boost轨道SVN (Boost几何扩展溶解)是不可编译的
- 编译项目时出现错误https://svn.openslam.org/data/svn/hog-man
- 如何通过我的c++代码读取和传递svn版本
- IDE for MinGW with SVN support