ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

It seems that you have to link libraries to the nodelet target that builds nodes. Doing the following seems to have solved the problem:

 add_library(CUASVNodelets 
  src/VTrackersNodelet.cpp
  src/VDetectorsNodelet.cpp
)

 target_link_libraries(CUASVNodelets 
   ${catkin_LIBRARIES}
 )

It was the target_link I had not done before.

It seems that you have to link libraries to the nodelet target that builds nodes. Doing the following seems to have solved the problem:

 add_library(CUASVNodelets 
  src/VTrackersNodelet.cpp
  src/VDetectorsNodelet.cpp
)

 target_link_libraries(CUASVNodelets 
   ${catkin_LIBRARIES}
 )

It was the target_link I had not done before.

But that might not have been the solution since I got:

Warning: class_loader::class_loader_private: SEVERE WARNING!!! A namespace collision has occured with plugin factory for class (null). New factory will OVERWRITE existing one. This situation occurs when libraries containing plugins are directly linked against an executable (the one running right now generating this message). Please separate plugins out into their own library or just don't link against the library and use either class_loader::ClassLoader/MultiLibraryClassLoader to open.
         at line 180 in /opt/ros/groovy/include/class_loader/class_loader_core.h
Warning: class_loader::class_loader_private: SEVERE WARNING!!! A namespace collision has occured with plugin factory for class (null). New factory will OVERWRITE existing one. This situation occurs when libraries containing plugins are directly linked against an executable (the one running right now generating this message). Please separate plugins out into their own library or just don't link against the library and use either class_loader::ClassLoader/MultiLibraryClassLoader to open.
         at line 180 in /opt/ros/groovy/include/class_loader/class_loader_core.h

I wonder hot to tell the standalone nodlet then to use opencv libraries.

It seems that you have to link libraries to the nodelet target that builds nodes. Doing the following seems to have solved the problem:

 add_library(CUASVNodelets 
  src/VTrackersNodelet.cpp
  src/VDetectorsNodelet.cpp
)

 target_link_libraries(CUASVNodelets 
   ${catkin_LIBRARIES}
 )

It was the target_link I had not done before.

But that might not have been the solution since I got:

Warning: class_loader::class_loader_private: SEVERE WARNING!!! A namespace collision has occured with plugin factory for class (null). New factory will OVERWRITE existing one. This situation occurs when libraries containing plugins are directly linked against an executable (the one running right now generating this message). Please separate plugins out into their own library or just don't link against the library and use either class_loader::ClassLoader/MultiLibraryClassLoader to open.
         at line 180 in /opt/ros/groovy/include/class_loader/class_loader_core.h
Warning: class_loader::class_loader_private: SEVERE WARNING!!! A namespace collision has occured with plugin factory for class (null). New factory will OVERWRITE existing one. This situation occurs when libraries containing plugins are directly linked against an executable (the one running right now generating this message). Please separate plugins out into their own library or just don't link against the library and use either class_loader::ClassLoader/MultiLibraryClassLoader to open.
         at line 180 in /opt/ros/groovy/include/class_loader/class_loader_core.h

I wonder hot how to tell the standalone nodlet then to use opencv libraries.

It seems that you have to link libraries to the nodelet target that builds nodes. Doing the following seems to have solved the problem:

 add_library(CUASVNodelets 
  src/VTrackersNodelet.cpp
  src/VDetectorsNodelet.cpp
)

 target_link_libraries(CUASVNodelets 
   ${catkin_LIBRARIES}
 )

It was the target_link I had not done before.

But that might not have been the solution since I got:

Warning: class_loader::class_loader_private: SEVERE WARNING!!! A namespace collision has occured with plugin factory for class (null). New factory will OVERWRITE existing one. This situation occurs when libraries containing plugins are directly linked against an executable (the one running right now generating this message). Please separate plugins out into their own library or just don't link against the library and use either class_loader::ClassLoader/MultiLibraryClassLoader to open.
         at line 180 in /opt/ros/groovy/include/class_loader/class_loader_core.h
Warning: class_loader::class_loader_private: SEVERE WARNING!!! A namespace collision has occured with plugin factory for class (null). New factory will OVERWRITE existing one. This situation occurs when libraries containing plugins are directly linked against an executable (the one running right now generating this message). Please separate plugins out into their own library or just don't link against the library and use either class_loader::ClassLoader/MultiLibraryClassLoader to open.
         at line 180 in /opt/ros/groovy/include/class_loader/class_loader_core.h

I wonder how to tell the standalone nodlet then to use opencv libraries.

===============

I think the above warning was just a mistake in the code using some macros twice. Everything is working now and the answer I was looking for was the target_link_libraries above.