OK, I just compiled it successfully now. Added these lines to String.cpp: String::~String() {} Program: 14632 bytes (44.7% Full) > I didn't know this would go almost half-full just for a hello world. -Homer On Wed, Feb 9, 2011 at 7:09 PM, Homer Manalo wrote: > I found the culprit with the error: ‘string’ in namespace ‘ROS’ does not > name a type. > The ros_string.h has the ff. lines: > #ifndef STRING_H_ > #define STRING_H_ > Should be: > #ifndef ROS_STRING_H_ > #define ROS_STRING_H_ > The filename on the top of the comment is string.h as well. It also solved > the error: ‘class std_msgs::String’ has no member named ‘data’. It seems > that this is also the reason for the previous error I got regarding > std_msgs::String. I don't have to reorder the #include files anymore. > > I,ve got a couple more errors this time: > char Ros::getTopicTag(char *topic) { > ../avrRos/ros_generated.cpp:6: error: prototype for ‘char > Ros::getTopicTag(char*)’ does not match any in class ‘Ros’ > > char getTopicTag(char const *topic); > ../avrRos/Ros.h:132: error: candidate is: char Ros::getTopicTag(const > char*) > > I replaced the autogenerated ros_generated.cpp with this: > > /* This file was autogenerated as a part of the avr_bridge pkg > * avr_bridge was written by Adam Stambler and Phillip Quiza of > * Rutgers University. > */ > #include "Ros.h" > #include "string.h" //added manually for strcmp > char Ros::getTopicTag(char const *topic) { //manually added const to > resolve above errors > if (!strcmp(topic, "call")) > return 0; > if (!strcmp(topic, "response")) > return 1; > return 0; //manually added semicolon(;) > } > Ros ros("callResponse", 2); > > I'm not sure if this is the right solution but the errors are gone now, > except one. It's a make error, here is the console output: > > **** Build of configuration Release for project avr_bridgeHelloWorld **** > > make all > Building target: avr_bridgeHelloWorld.elf > Invoking: AVR C++ Linker > avr-gcc --cref -s -Os -o"avr_bridgeHelloWorld.elf" ./avrRos_user.o > ./main.o ./avrRos/Ros.o ./avrRos/String.o ./avrRos/cc_support.o > ./avrRos/ros_generated.o ./avrRos/ros_string.o -lArduinoProMini5VCore -lm > -Wl,-Map,avr_bridgeHelloWorld.map,--cref > -L/home/roboteknik/eclipse/ArduinoCores -mmcu=atmega328p > ./main.o: In function `__static_initialization_and_destruction_0(int, > int)': > main.cpp:(.text._Z41__static_initialization_and_destruction_0ii+0x2c): > undefined reference to `std_msgs::String::~String()' > main.cpp:(.text._Z41__static_initialization_and_destruction_0ii+0x34): > undefined reference to `std_msgs::String::~String()' > make: *** [avr_bridgeHelloWorld.elf] Error 1 > > I'm not sure how to solve this error. > > > > On Wed, Feb 9, 2011 at 2:51 PM, Homer Manalo wrote: > >> Ok now I have sorted out about the std_msgs error by ordering the #include >> lines and object declarations: >> >> #include >> #include >> >> #include "avrRos/String.h" >> >> std_msgs::String call_msg; >> std_msgs::String response_msg; >> >> #include "avrRos/Ros.h" >> >> But I still got some errors here: >> >> sprintf(response_msg.data.getRawString(), "You sent : %s", >> call_msg.data.getRawString()); >> ../main.cpp:35: error: ‘class std_msgs::String’ has no member named >> ‘data’ >> ../main.cpp:35: error: ‘class std_msgs::String’ has no member named >> ‘data’ >> >> call_msg.data.setMaxLength(30); >> response_msg.data.setMaxLength(60); >> ../main.cpp:50: error: ‘class std_msgs::String’ has no member named >> ‘data’ >> ../main.cpp:51: error: ‘class std_msgs::String’ has no member named >> ‘data’ >> >> ROS::string data; >> ../avrRos/String.h:18: error: ‘string’ in namespace ‘ROS’ does not >> name a type >> >> ROS::string name; >> ../avrRos/Ros.h:117: error: ‘string’ in namespace ‘ROS’ does not name >> a type >> >> >> >> >> On Tue, Feb 8, 2011 at 4:41 PM, Homer Manalo > > wrote: >> >>> Hello, I'm following the hello world tutorial and getting build errors >>> particularly with these two lines: >>> >>> std_msgs::String call_msg; >>> std_msgs::String response_msg; >>> >>> ../main.cpp:21: error: ‘std_msgs’ has not been declared >>> ../main.cpp:21: error: expected constructor, destructor, or type >>> conversion before ‘call_msg’ >>> ../main.cpp:22: error: ‘std_msgs’ has not been declared >>> ../main.cpp:22: error: expected constructor, destructor, or type >>> conversion before ‘response_msg’ >>> >>> Other errors are just because of the two variables not being declared. >>> >>> >>> >>> On Mon, Jan 10, 2011 at 4:10 AM, Adam Stambler wrote: >>> >>>> Hi >>>> >>>> Configuring eclipse can be a bit tricky. This tutorial was the most >>>> straight forward explanation: >>>> >>>> http://www.arduino.cc/playground/Code/Eclipse >>>> >>>> If you are still having trouble, let me know and I will write up an >>>> explanation on the ROS site. >>>> >>>> -Adam >>>> >>>> >>>> On Sun, Jan 9, 2011 at 2:36 PM, airthimble < >>>> joseph.st.amand@mines.sdsmt.edu> wrote: >>>> >>>>> >>>>> I have been trying to use this package in order to communicate with a >>>>> Seeduino. I tried following the avr-bridge tutorial but had trouble >>>>> with it. >>>>> I typically put together a make file for a project and just use a text >>>>> editor. I have no trouble using eclipse, I just cannot figure out how >>>>> to >>>>> configure it. There does not seem to be a well-made tutorial for >>>>> configuring >>>>> eclipse in Ubuntu 11.04. >>>>> >>>>> If anyone would be able to give me a push in the right direction it >>>>> would be >>>>> much appreciated! >>>>> >>>>> Thanks! >>>>> -- >>>>> View this message in context: >>>>> http://ros-users.122217.n3.nabble.com/AVR-and-ROS-tp2200563p2222791.html >>>>> Sent from the ROS-Users mailing list archive at Nabble.com. >>>>> _______________________________________________ >>>>> ros-users mailing list >>>>> ros-users@code.ros.org >>>>> https://code.ros.org/mailman/listinfo/ros-users >>>>> >>>> >>>> >>>> _______________________________________________ >>>> ros-users mailing list >>>> ros-users@code.ros.org >>>> https://code.ros.org/mailman/listinfo/ros-users >>>> >>>> >>> >> >