解决gcc报错:error: implicit declaration of function ‘inet_addr’ [-Werror=implicit-function-declaration]

本文解决了在使用GCC编译时遇到的隐式函数声明错误问题,如socket、inet_addr等,通过正确声明函数或引入相应的头文件可以避免此类警告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此文首发于我的个人博客:解决gcc报错 error implicit declaration of function ‘inet_addr’ [-Werror=implicit-function-declaration] — zhang0peter的个人博客


下午在写代码编译时报了如下这些错:

/home/mininet/openvswitch-2.10.1/datapath/linux/datapath.c:239:1: error: implicit declaration of function ‘socket’ [-Werror=implicit-function-declaration]
 int sock_cli = socket(AF_INET,SOCK_STREAM, 0);
 ^
/home/mininet/openvswitch-2.10.1/datapath/linux/datapath.c:245:5: error: implicit declaration of function ‘inet_addr’ [-Werror=implicit-function-declaration]
     servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");  
     ^
/home/mininet/openvswitch-2.10.1/datapath/linux/datapath.c:246:5: error: implicit declaration of function ‘connect’ [-Werror=implicit-function-declaration]
     if (connect(sock_cli, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0)
     ^
/home/mininet/openvswitch-2.10.1/datapath/linux/datapath.c:248:9: error: implicit declaration of function ‘perror’ [-Werror=implicit-function-declaration]
         perror("connect error!");
         ^
/home/mininet/openvswitch-2.10.1/datapath/linux/datapath.c:250:4: error: implicit declaration of function ‘send’ [-Werror=implicit-function-declaration]
    if(send(sock_cli, skb->data,skb->tail-skb->data ,0)<0){

我的函数是没问题的,问题是我调用了未声明的函数,也就是说编译器不知道这个函数的返回值和参数列表
需要在前面加个函数声明就可以了,或者在对于的.h文件中增加函数声明。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值