error: dereferencing pointer to incomplete type的解决办法

问题:

编译程序时出现如下编译错误:

dingq@u1110-120628:~/hwsvn/2sw/1prj_linux/pdu/src/branches/pdu-isocket/isocket$ gcc -o tcpclient tcpclient.c 
tcpclient.c: In function ‘main’:
tcpclient.c:59:46: error: dereferencing pointer to incomplete type
源码是:

	// set params of sockaddr_in instances
	serv_addr.sin_family = AF_INET;
	serv_addr.sin_port = htons(PORT);
	serv_addr.sin_addr = *((struct in_addr*)host->h_addr);
	bzero(&(serv_addr.sin_zero), 8);

解决办法:

1. 放狗搜,看到说是类型不完全所导致,只有类型定义,而没有类型声明;

进一步说,是缺少某些头文件的包含引起的问题;

2. 包含头文件<netdb.h>,重新编译,错误消失。

问题解决。



原文地址:https://www.cnblogs.com/java20130726/p/3218547.html