c 语言---undefined reference to `socket'的问题

龙欣软件 2007-12-14 04:56:08
最近在自学c语言,在学网络这章时遇到一个问题:
代码如下:
#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include "chinatime.c"
#define myport 6666
#define max 100
int main(){
struct chinatime tc;
int sockfd;
struct sockaddr_in myaddr,otheraddr;
int addr_len,numaddr;
char buf[max];
tc=to_china_time(NULL,tc);
printf("-------------测试程序开始( %s %s %s)------------\n",tc.y_m_d,tc.h_m_s,tc.wday);
sockfd=socket(AF_INET,SOCK_DGRAM,0);
getch();
return 0;
}
sockfd=socket(AF_INET,SOCK_DGRAM,0);**********这行报错:undefined reference to `socket'
我在sys文件夹下能找到socket.h,
并能找到文件中的声明:extern int socket (int __domain, int __type, int __protocol) __THROW;
不知为什么?请各位多指点.
...全文
2102 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunhappy 2007-12-14
  • 打赏
  • 举报
回复
libc.a 把这个也拷过来~~~
Treazy 2007-12-14
  • 打赏
  • 举报
回复
>>mingw下的不全

应该不会不全吧,只是有些名字可能变了!可以去查查

另外你直接把头文件包含进来也是没用的,因为库文件中没有对应的函数,所以连接不到

或者楼主你可以上网自己把这个函数原型提取出来,然后自己编译!
龙欣软件 2007-12-14
  • 打赏
  • 举报
回复
可能是mingw本身没有socket.h头文件,也就没有库文件,所以即使把头文件copy来也不行.
不知对不对
believefym 2007-12-14
  • 打赏
  • 举报
回复
无语了。。。。。。
龙欣软件 2007-12-14
  • 打赏
  • 举报
回复
1楼所说的,我觉得不可能,文件都能找到,定义一定找到.
不明白2楼的意思.要配置什么库?
------------
找到的只是包含声明的文件,谁说定义一定能找到了
不是开源的话,定义就在库里面
------------------------------------
回10楼:我其它的函数如printf getch等能用,你说是不是开源的
龙欣软件 2007-12-14
  • 打赏
  • 举报
回复
mingw下的不全,所以我到linux copy.
believefym 2007-12-14
  • 打赏
  • 举报
回复
1楼所说的,我觉得不可能,文件都能找到,定义一定找到.
不明白2楼的意思.要配置什么库?
------------
找到的只是包含声明的文件,谁说定义一定能找到了
不是开源的话,定义就在库里面
Treazy 2007-12-14
  • 打赏
  • 举报
回复
晕,mingw下面本身就有相对应的头文件和库文件,好象不用linux下的
乱了 乱了~~
龙欣软件 2007-12-14
  • 打赏
  • 举报
回复
我用的是eclips+cdt+MinGW.所有头文件是从liunx的usr/include/copy下来的
龙欣软件 2007-12-14
  • 打赏
  • 举报
回复
照3楼的做了,还是不行
Treazy 2007-12-14
  • 打赏
  • 举报
回复
你的环境是什么,用的是什么编译器?

你看看你自己的path中是否包含了那些头文件
如果没有的话,那可能就会报上面的错误

标准unix系统中
socket函数需要包含头文件
socket.h

sys/type.h
龙欣软件 2007-12-14
  • 打赏
  • 举报
回复
1楼所说的,我觉得不可能,文件都能找到,定义一定找到.
不明白2楼的意思.要配置什么库?

NKLoveRene 2007-12-14
  • 打赏
  • 举报
回复
还不行就编译的时候加-I/..include/之类的
连接时候-L/..lib/之类的
NKLoveRene 2007-12-14
  • 打赏
  • 举报
回复
#include <arpa/inet.h>
把这个也加上试试
还不行就在编译的时候加-lsocket选项
believefym 2007-12-14
  • 打赏
  • 举报
回复
是不是库没配置好
believefym 2007-12-14
  • 打赏
  • 举报
回复
声明是有了,没找到定义吧
内容概要:本文围绕“新型电力系统下多分布式电源接入配电网承载力评估方法”的研究,系统性地介绍了基于Matlab的仿真建模与代码实现方案,旨在评估高比例分布式电源(如光伏、风电等)接入背景下配电网的接纳能力。研究融合了智能优化算法(如蜣螂优化、灰狼优化、遗传算法)、多目标优化、鲁棒优化及双层优化模型,结合潮流计算、稳定性分析与故障仿真,构建了完整的承载力评估体系。文档不仅提供核心算法实现,还拓展至微电网调度、储能配置、电氢耦合系统、电动汽车协同等前沿方向,强调“复现+创新”相结合的科研路径,助力研究者快速掌握高水平论文复现技巧并激发原创思路。; 适合人群:具备电力系统、自动化或相关专业背景,熟悉Matlab/Simulink仿真环境,正在从事科研或工程应用的研究生及初级科研人员(工作1-3年);; 使用场景及目标:①复现高水平期刊中关于配电网承载力的优化模型;②开展高比例可再生能源接入下的配电网规划与运行研究;③学习并应用智能优化算法解决复杂电力系统问题;④获取完整科研资源包以加速课题进展与论文撰写; 阅读建议:建议读者关注公众号“荔枝科研社”获取网盘资源,下载全套代码与模型文件,按照文档结构循序渐进学习,重点理解算法设计逻辑与仿真建模细节,结合所提供的复现案例深化对优化模型与工程应用场景的理解,提升科研效率与创新能力。

70,039

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧