Hi,
I have problem with Linker. when I compile my code I get the following linker messages:
c:\program files\webots 3.0\controllers\pr_kiki\pr_kiki.o(.text+0x27):pr_kiki.c: undefined reference to `robot_get_device'
c:\program files\webots 3.0\controllers\pr_kiki\pr_kiki.o(.text+0x3e):pr_kiki.c: undefined reference to `robot_get_device'
c:\program files\webots 3.0\controllers\pr_kiki\pr_kiki.o(.text+0x65):pr_kiki.c: undefined reference to `g_print'
c:\program files\webots 3.0\controllers\pr_kiki\pr_kiki.o(.text+0xa4):pr_kiki.c: undefined reference to `robot_live'
c:\program files\webots 3.0\controllers\pr_kiki\pr_kiki.o(.text+0xb4):pr_kiki.c: undefined reference to `robot_live'
c:\program files\webots 3.0\controllers\pr_kiki\pr_kiki.o(.text+0xc9):pr_kiki.c: undefined reference to `distance_sensor_enable'
c:\program files\webots 3.0\controllers\pr_kiki\pr_kiki.o(.text+0xde):pr_kiki.c: undefined reference to `distance_sensor_enable'
c:\program files\webots 3.0\controllers\pr_kiki\pr_kiki.o(.text+0xee):pr_kiki.c: undefined reference to `supervisor_node_get_from_def'
c:\program files\webots 3.0\controllers\pr_kiki\pr_kiki.o(.text+0x107):pr_kiki.c: undefined reference to `supervisor_field_get'
c:\program files\webots 3.0\controllers\pr_kiki\pr_kiki.o(.text+0x134):pr_kiki.c: undefined reference to `g_print'
c:\program files\webots 3.0\controllers\pr_kiki\pr_kiki.o(.text+0x147):pr_kiki.c: undefined reference to `distance_sensor_get_value'
c:\program files\webots 3.0\controllers\pr_kiki\pr_kiki.o(.text+0x160):pr_kiki.c: undefined reference to `distance_sensor_get_value'
c:\program files\webots 3.0\controllers\pr_kiki\pr_kiki.o(.text+0x1da):pr_kiki.c: undefined reference to `differential_wheels_set_speed'
c:\program files\webots 3.0\controllers\pr_kiki\pr_kiki.o(.text+0x1e7):pr_kiki.c: undefined reference to `robot_step'
and my code is:
#include <stdio.h>
#include <robot.h>
#include <differential_wheels.h>
#include <distance_sensor.h>
#include <gtk/gtk.h>
#include <supervisor.h>
#define SPEED 100
static device_tag ir0,ir1;
void reset(void) {
ir0 = robot_get_device("ir0");
ir1 = robot_get_device("ir1");
g_print("ir0=%d ir1=%d\n",ir0,ir1);
}
int main() {
gint16 left_speed,right_speed;
guint16 ir0_value,ir1_value;
node_ref kiki;
gfloat a[3],b[3];
gint i=0;
//robot_live(NULL);
robot_live(reset);
distance_sensor_enable(ir0,64);
distance_sensor_enable(ir1,64);
kiki = supervisor_node_get_from_def("KIKI");
supervisor_field_get(kiki,SUPERVISOR_FIELD_TRANSLATION,(gpointer)a,64);
for(;;) { /* The robot never dies! */
g_print("KIKI is at (%g,%g,%g)\n",a[0],a[1],a[2]);
ir0_value = distance_sensor_get_value(ir0);
ir1_value = distance_sensor_get_value(ir1);
if ((ir1_value>200) && (ir0_value>200)){
left_speed = -20;
right_speed = -20;
}
else if (ir1_value>100) {
left_speed = -20;
right_speed = 20;
}
else if (ir0_value>100) {
left_speed = 20;
right_speed = -20;
}
else {
left_speed =SPEED;
right_speed=SPEED;
}
differential_wheels_set_speed(left_speed,right_speed); /* Set the motor speeds */
robot_step(64); /* run one step */
}
return 0;
}
---------------------------------
Do You Yahoo!?
Check out Yahoo! Shopping and Yahoo! Auctionsfor all of your holiday gifts! |