2014-04-21 65 views
0

我想編譯一個非常簡單的Arduino程序,它連接到服務器併發送字符串「ok \ n」。該程序廣泛使用uIP庫(實際上,它是一個基於uIP的庫,但它似乎幾乎完全相同)。這裏是我的草圖:在Arduino IDE中編譯uIP庫

#include <uip.h> 

void setup() { 
    connect_example2(); 
} 

void loop() { 
uip_send("ok\n", 3); 
} 

void connect_example2(void) { 
uip_ipaddr_t ipaddr; 
uip_ipaddr(&ipaddr, 192,168,1,100); 
uip_connect(&ipaddr, HTONS(8080)); 
} 

但是,我編譯時出現以下錯誤:

test.cpp.o: In function `connect_example2()': 
C:\Program Files (x86)\Arduino/test.ino:14: undefined reference to `uip_connect(unsigned int (*) [2], unsigned int)' 
test.cpp.o: In function `loop': 
C:\Program Files (x86)\Arduino/test.ino:8: undefined reference to `uip_send(void const*, int)' 

的錯誤來看,Arduino的IDE是連接庫就好了。問題是什麼?

+0

在函數的文檔中:http://weinert-automation.de/files/weAutSys/doxygen/group__uipappfunc.html#gaedd860dbf4565703ccb858e9dc7bb21b,聲明您需要在uipopt.h中將UIP_ACTIVE_OPEN定義爲1。你有嗎? – Paul92

+0

@ Paul92是的,我有 – Adam

回答

0

「未定義的引用」錯誤意味着,與您的聲明相反,IDE未鏈接庫。它只是查找標題,這意味着您不會收到未聲明的功能錯誤。我猜測Arduino IDE沒有配置庫。您是否嘗試過編譯uIP示例草圖以確保庫安裝正確?