Quantcast
Channel: ROS Answers: Open Source Q&A Forum - RSS feed
Viewing all articles
Browse latest Browse all 126

Dynamic reconfigure headers not generated

$
0
0
### Summary Using `$ catkin build my_node`, the reconfigure headers are not generated on some computer (even though the build works on others). It just seems like `generate_dynamic_reconfigure_options()` is ignored. ### More details I have a node using catkin and a CMakeLists.txt (i.e. not rosbuild), **successfully building** from an Ubuntu 16.04 docker container. When I follow **exactly** all the steps of the "working" Dockerfile into a brand new Ubuntu 16.04 install in VirtualBox, catkin fails with the following error: Errors << my_node:make /root/catkin_ws/logs/my_node/build.make.008.log In file included from /root/catkin_ws/src/my_node/src/nodes/path_handler_node.cpp:1:0: /root/catkin_ws/src/my_node/src/nodes/path_handler_node.h:16:50: fatal error: my_node/PathHandlerNodeConfig.h: No such file or directory compilation terminated. make[2]: * * * [CMakeFiles/path_handler_node.dir/src/nodes/path_handler_node.cpp.o] Error 1 make[1]: * * * [CMakeFiles/path_handler_node.dir/all] Error 2 make: * * * [all] Error 2 From what I observe in the working config (the docker container), I expect `PathHandlerNodeConfig.h` to be generated in `devel/my_node/PathHandlerNodeConfig.h`, but it is not. However, `cfg/path_handle_node.cfg` is present in the `generate_dynamic_reconfigure_options(...)` in the CMakeLists.txt of `my_node`, and there are `dynamic_reconfigure` build_depend and run_depend in "package.xml". Again, it works on other computers. One could be the reason for the config file to not get generated? How could I get more information about what is happening? The error I get says that the config header is missing, but there is no complaint at the time of generating it (if generation is ever started). `$ catkin build --verbose my_node` doesn't seem to say anything about the dynamic_reconfigure generation, either. I have created a small test node following [this tutorial](http://wiki.ros.org/dynamic_reconfigure/Tutorials/HowToWriteYourFirstCfgFile) and the header file is correctly generated, which makes me even more confused: my code works on other platforms, and this platform that fails with my code works for a small example... **UPDATE:** After a lot of testing, I realized that the config headers are generated when I remove the last two commands of the CMakeLists.txt: add_executable(path_handler_node src/nodes/path_handler_node.cpp) target_link_libraries(path_handler_node ${catkin_LIBRARIES}) I would expect the config headers to be generated before `path_handler_node` gets compiled (I guess that's the whole point, right?). And because they are not, I get the build error above. And the problem is really that somehow, the headers are not generated at the right time: if I comment out the two lines above and build, I get the headers generated. Then, if put back the two lines above and compile again, it works...

Viewing all articles
Browse latest Browse all 126

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>