未定义的引用openscenegraph
undefined reference openscenegraph
我正试图从这里编译一个ROS OSG项目https://github.com/uji-ros-pkg/visualization_osg并不断得到以下错误:
CMakeFiles/osg_interactive_markers_demo.dir/examples/osg_interactive_markers_demo.cpp.o: In function `main':
/home/user/catkin_ws/src/visualization_osg/osg_interactive_markers/examples/osg_interactive_markers_demo.cpp:28: undefined reference to `osgViewer::View::addEventHandler(osgGA::EventHandler*)'
/home/user/catkin_ws/src/visualization_osg/osg_interactive_markers/examples/osg_interactive_markers_demo.cpp:29: undefined reference to `osgViewer::View::addEventHandler(osgGA::EventHandler*)'
/home/user/catkin_ws/devel/lib/libosg_utils.so: undefined reference to `osg::NodeVisitor::NodeVisitor(osg::NodeVisitor const&, osg::CopyOp const&)'
/home/user/catkin_ws/devel/lib/libosg_interactive_markers.so: undefined reference to `osg::Group::removeChild(osg::Node*)'
/home/user/catkin_ws/devel/lib/libosg_utils.so: undefined reference to `osg::NodeVisitor::apply(osg::Geometry&)'
/home/user/catkin_ws/devel/lib/libosg_interactive_markers.so: undefined reference to `osg::Group::getNumChildren() const'
/home/user/catkin_ws/devel/lib/libosg_utils.so: undefined reference to `osg::NodeVisitor::apply(osg::Drawable&)'
据我所知,应该有一个链接问题,但我找不到解决它的方法
cmake_minimum_required(VERSION 2.8.3)
project(osg_interactive_markers)
find_package(catkin REQUIRED COMPONENTS roscpp tf interactive_markers)
find_package(osg_utils REQUIRED)
find_package(osg_markers REQUIRED)
find_package(OpenSceneGraph REQUIRED COMPONENTS osgSim osgUtil osgDB osgFX osgGA osgTerrain osgViewer osgText osgWidget osgManipulator osg)
catkin_package(
INCLUDE_DIRS include
LIBRARIES ${PROJECT_NAME}
CATKIN_DEPENDS
roscpp
tf
interactive_markers
DEPENDS
osg_markers
osg_utils
libopenscenegraph
)
include_directories(include ${catkin_INCLUDE_DIRS} ${osg_utils_INCLUDE_DIRS} ${osg_markers_INCLUDE_DIRS} ${OpenSceneGraph_INCLUDE_DIRS})
add_library(${PROJECT_NAME}
src/interactive_marker_client.cpp
src/interactive_marker_display.cpp
src/interactive_marker.cpp
src/interactive_marker_control.cpp
src/draggers.cpp
)
target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} ${OPENSCENEGRAPH_LIBRARIES} ${OSGUTILS_LIBRARIES} ${OSGMARKERS_LIBRARIES} -lGLU )
add_executable(osg_interactive_markers_demo examples/osg_interactive_markers_demo.cpp)
target_link_libraries(osg_interactive_markers_demo ${PROJECT_NAME} ${catkin_LIBRARIES} ${OPENSCENEGRAPH_LIBRARIES} ${OSGUTILS_LIBRARIES} ${OSGMARKERS_LIBRARIES} -lGLU )
add_dependencies(${PROJECT_NAME} ${catkin_EXPORTED_TARGETS})
configure_file(osgInteractiveMarkersConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/lib/${CMAKE_PROJECT_NAME}Config.cmake @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib/${CMAKE_PROJECT_NAME}Config.cmake
DESTINATION share/${CMAKE_PROJECT_NAME} )
install(
TARGETS
osg_interactive_markers_demo
${PROJECT_NAME}
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
install(DIRECTORY include/${PROJECT_NAME}
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION})
有什么想法可以在这里做什么吗?我是OSG的新手,非常感谢你的帮助。
问题已解决,原因是OSG 安装错误(双重)
您没有针对正确的OSG链接库。
我不能对你提到的具体github项目发表评论,但一般来说,如果你使用的是osg发行版附带的FindOSG.cmake模块,你应该用调用它
FIND_PACKAGE(OSG REQUIRED)
然后链接特定的osg库,如
OSG_LIBRARY
OSGUTIL_LIBRARY
OSGGA_LIBRARY
etc...
没有定义"全局"OPENSCENEGRAPH_LIBRARIES符号,请参阅FindOSG.cmake
相关文章:
- 如何在 OpenSceneGraph 中缩放/旋转/移动资产
- 如何在Openscenegraph中从二维鼠标点击的屏幕坐标点计算三维点(世界坐标)
- 为什么OpenSceneGraph将所有Sampler2D映射到第一个纹理
- 如何在 osg::Geometry 上设置光泽度,而无需在 OpenSceneGraph 中设置材质
- OpenSceneGraph不加载OpenFlight插件
- 如何处理 OpenSceneGraph 键盘输入事件中的区分大小写
- 在实现OpenSceneGraph时在Qt中获取引用问题
- 获取无效或损坏的文件LNK1107:尝试链接 OpenSceneGraph 教程.dll时无法0x378读取
- OpenSceneGraph、HUD 和 Textured Qt Widget 问题
- C++ OpenSceneGraph 更改相机眼睛高度
- 使用 Openscenegraph 加载纹理时出错
- 使用OpenSceneGraph加载DirectX模型文件
- 重置场景时OpenSceneGraph内存使用情况
- 未定义的引用openscenegraph
- OpenSceneGraph浮动图像
- 使用OpenSceneGraph创建和导出球体
- 在OpenSceneGraph中创建球体(使用osg::Geometry)
- 如何在OpenSceneGraph中使用windows原始输入
- OpenScenegraph 示例代码问题
- 是否有适用于 OpenSceneGraph osg ive 格式的 GDAL 驱动程序