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

error while building after adding a Subscriber node

$
0
0
I created a subscriber node "Listener.cpp" in the **src** folder of the package **ardrone_autonomy**. I also modified the CMakeLists.txt file by adding dependency, executable link However, when I go to my catkin workspace and type in "catkin_make", It builds fine except for something wrong with my new file. What am I missing/ doing wrong? ERROR shown below: ... ... [100%] Building CXX object ardrone_autonomy/CMakeFiles/ardrone_driver.dir/src/listener.cpp.o Linking CXX executable /home/voladoddi/catkin_ws/devel/lib/ardrone_autonomy/ardrone_driver CMakeFiles/ardrone_driver.dir/src/listener.cpp.o: In function `main': listener.cpp:(.text+0x152): multiple definition of `main' CMakeFiles/ardrone_driver.dir/src/ardrone_driver.cpp.o:ardrone_driver.cpp:(.text+0x16a61): first defined here /usr/bin/ld: cannot find -llistener collect2: ld returned 1 exit status make[2]: *** [/home/voladoddi/catkin_ws/devel/lib/ardrone_autonomy/ardrone_driver] Error 1 make[1]: *** [ardrone_autonomy/CMakeFiles/ardrone_driver.dir/all] Error 2 make: *** [all] Error 2 Invoking "make" failed I checked the .cpp file I wrote. I cannot see any multiple definitions of main in the file. There's no other subscriber node named the same way either. **EDIT** - As William pointed out, I was trying add the node to the executable of the existing package. However, I added two lines to the end of my Subscriber.cpp file like below: #adding subscriber's node executable to the end of CMakeLists.txt file - POOJA add_executable(subscriber src/subscriber.cpp) target_link_libraries(subscriber ${catkin_LIBRARIES}) And now I'm getting the following errors: Build done. Checking required Ubuntu packages ... /home/voladoddi/catkin_ws/src/ardrone_autonomy/src/subscriber.cpp: In function ‘void ReceiveData(const ConstPtr&)’: /home/voladoddi/catkin_ws/src/ardrone_autonomy/src/subscriber.cpp:8:2: error: ‘const struct ardrone_autonomy::Navdata_>’ has no member named ‘data’ /home/voladoddi/catkin_ws/src/ardrone_autonomy/src/subscriber.cpp: In function ‘int main(int, char**)’: /home/voladoddi/catkin_ws/src/ardrone_autonomy/src/subscriber.cpp:17:54: error: ‘Navdata’ was not declared in this scope /home/voladoddi/catkin_ws/src/ardrone_autonomy/src/subscriber.cpp:17:54: note: suggested alternative: /home/voladoddi/catkin_ws/devel/include/ardrone_autonomy/Navdata.h:246:61: note: ‘ardrone_autonomy::Navdata’ ok. Building ARDroneTool/Lib make[2]: *** [ardrone_autonomy/CMakeFiles/subscriber.dir/src/subscriber.cpp.o] Error 1 make[1]: *** [ardrone_autonomy/CMakeFiles/subscriber.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... Building ARDroneTool/Lib [ 4%] Performing install step for 'ardronelib' make[3]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule. [ 5%] Completed 'ardronelib' [ 7%] Built target ardronelib make: *** [all] Error 2 Here is my subscriber code: #include "ros/ros.h" #include "ardrone_autonomy/Navdata.h" //The topics subscribed to : Time (from the header), Pitch angle(rotY) // where the MESSAGE= ardrone_autonomy void ReceiveData(const ardrone_autonomy::Navdata::ConstPtr& rot) { ROS_INFO("Time: %d, Pitch angle: %d",rot->data.header.stamp.to_sec(),rot->rotY); } //instantiating subscriber int main(int argc, char **argv) { ros::init(argc,argv,"subscriber"); ros::NodeHandle n; ros::Subscriber sub = n.subscribe("ardrone/navdata",Navdata,ReceiveData); ros::spin(); return 0; }

Viewing all articles
Browse latest Browse all 54

Trending Articles



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