我试图从Ubunto 14.04 LTS上的源代码构建名为OpendTect的软件。软件依赖是我安装的OSG和QT没有任何问题。 我跑过cmake。工作得很好。 但是当我尝试运行make时。我得到以下内容作为我的第一个错误:
Building CXX object external/osgGeo/src/osgGeo/CMakeFiles/osgGeo.dir/Draggers.cpp.o
/home/odn/external/osgGeo/src/osgGeo/Draggers.cpp: In member function ‘virtual void osgGeo::Translate1DDragger::traverse(osg::NodeVisitor&)’:
/home/odn/external/osgGeo/src/osgGeo/Draggers.cpp:50:37: error: ‘class osg::ref_ptr<osgGA::Event>’ has no member named ‘asGUIEventAdapter’
osgGA::GUIEventAdapter* ea = itr->asGUIEventAdapter();
^
/home/odn/external/osgGeo/src/osgGeo/Draggers.cpp: In member function ‘virtual void osgGeo::Translate2DDragger::traverse(osg::NodeVisitor&)’:
/home/odn/external/osgGeo/src/osgGeo/Draggers.cpp:122:37: error: ‘class osg::ref_ptr<osgGA::Event>’ has no member named ‘asGUIEventAdapter’
> osgGA::GUIEventAdapter* ea = itr->asGUIEventAdapter();
我该如何解决这个问题?我仔细检查过所有文件都存在。此错误也在其他两个系统上出现。
可以在此处找到包含代码的文件:https://github.com/OpendTect
链接到包含导致上述错误的文件的文件夹:https://github.com/OpendTect/osgGeo/tree/master/src
答案 0 :(得分:0)
我下载,编译并安装了OSG 3.2.0(而不是导致我同样错误的3.5.0)来解决错误。
这是因为5.0中的OpendTect需要3.2(如果你看一下Draggers.cpp,你会看到有一个开关确定是否小于3.3或者超过3.3)。