Не удается найти ссылку на rpl_set_root()
Я пытаюсь запустить код, который был написан для contiki3.x на contiki-ng, я получаю ошибку компиляции с указанием неопределенной ссылки на `rpl_set_root ', хотя я включаю« net / routing / rpl-classic / rpl.h ». Когда я открываю исходный код rpl-classic / rpl.h и rpl-classic / rpl.ci, я могу видеть, что dunction явно там
Следующий код вызывает ошибку компиляции.
uip_ds6_addr_add(&ipaddr, 0, ADDR_MANUAL);
root_if = uip_ds6_addr_lookup(&ipaddr);
if(root_if != NULL) {
rpl_dag_t *dag;
dag = rpl_set_root(RPL_DEFAULT_INSTANCE,(uip_ip6addr_t *)&ipaddr);
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
rpl_set_prefix(dag, &ipaddr, 64);
} else {
printf("No DAG created\n");
}
1 ответ
Решение
По умолчанию в Contiki-NG включен RPL-lite, в котором нет этой функции.
Чтобы переключиться на классический RPL, добавьте эту строку в Makefile приложения:
MAKE_ROUTING = MAKE_ROUTING_RPL_CLASSIC
потом
make clean
и снова соберите приложение.