打印
[STM32F4]

使用lwip时编译错误,错误代码:L6218E

[复制链接]
1493|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wlawei|  楼主 | 2016-3-20 15:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wlawei 于 2016-3-20 17:14 编辑

大家好,刚开始学STM32+lwip
编译的时候碰到一下错误
..\OBJ\LWip.axf: Error: L6218E: Undefined symbol dns_gethostbyname (referred from tcp_client_demo.o).

dns_gethostbyname是在dns.c的一个函数,可是,我已经include,为什么还是报错?
////////////////////////代码如下////////////////////////////
#include "lwip/tcp.h"
#include <string.h>
#include <math.h>
//#include "led.h"
#include "tcp_client_demo.h"
//#include "lwip/ip_addr.h"
#include "lwip/dns.h"



ip_addr_t myIP;                        //域名解析后的IP

static void my_found(const char *name, ip_addr_t *ipaddr, void *arg)
{
        u8_t ip[4];
        myIP = *ipaddr;//保存IP,并在后续打印到串口


}

void        MyDNS(void)
{
                char hostname[]="www.yeelink.net";//需要解析的域名
                ip_addr_t        addr;                                                                                //记录IP
                dns_gethostbyname(hostname,addr,my_found,NULL);
}
里面的乱码都是中文注释,贴过来就是这样,不再改了

接收aozima的建议,把注释都打上了
沙发
aozima| | 2016-3-20 16:17 | 只看该作者
L开头是链接错误,跟你包含头文件没有关系。
如果没有包含,编译时就报错了。

综上,可能是dns.c没有参与链接。

另外,自己注释都随便一搞,你指望看贴人帮你仔细分析?

使用特权

评论回复
板凳
zyj9490| | 2016-3-20 16:27 | 只看该作者
没有找到函数实体,有声明,无实体(找不到),查看下路径就行。

使用特权

评论回复
地板
wlawei|  楼主 | 2016-3-20 17:43 | 只看该作者
谢谢,aozima和zyj9490,dns_gethostbyname的问题找到了,是因为没有在lwipopts.h中把DNS功能打开,再次感谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

79

帖子

0

粉丝