问题描述:
在进行网络编程的时候,用到
bind(sockfd_, (struct sockaddr*) &local_addr, sizeof(local_addr))
但总是提示
error: reference to ‘sockaddr’ is ambiguous
问题定位:
经查,是由于在a.h中用到了struct sockaddr *,但是没有加头文件
#include <sys/socket.h>
在b.cpp中,包含了a.h和socket.h,编译器认为a.h中是一个sockaddr的结构体定义,与socket中冲突了。
解决方法:
在a.h中,包含头文件socket.h
在C++的网络编程过程中,遇到一个编译错误:`error:reference to 'sockaddr' is ambiguous`。问题源于在头文件a.h中使用了`struct sockaddr*`但未包含`<sys/socket.h>`。当b.cpp同时包含a.h和socket.h时,编译器发现两个不同的sockaddr定义。解决方法是在a.h中正确包含`<sys/socket.h>`头文件,以确保结构体定义的一致性。
2052

被折叠的 条评论
为什么被折叠?



