vxworks socket通信程序编译时报找不到socket函数的错误

joomla25 2014-01-09 04:25:26
使用workbench创建的Vxworks653工程,简单的vxworks socket通信的程序,sockLib.h等头文件都写了,使用socket, bind等函数编译后出现下面的错误:
Sender-pm/Debug/Sender.pm(.text+0x1c8): In function `tNetRecv':
E:/windriver653/workspace/Sender/usrAppInit.c:75: undefined reference to `socket'
Sender-pm/Debug/Sender.pm(.text+0x25c):E:/windriver653/workspace/Sender/usrAppInit.c:87: undefined reference to `bind'
Sender-pm/Debug/Sender.pm(.text+0x2b0):E:/windriver653/workspace/Sender/usrAppInit.c:93: undefined reference to `listen'
Sender-pm/Debug/Sender.pm(.text+0x334):E:/windriver653/workspace/Sender/usrAppInit.c:102: undefined reference to `accept'
Sender-pm/Debug/Sender.pm(.text+0x39c):E:/windriver653/workspace/Sender/usrAppInit.c:109: undefined reference to `recv'
E:\windriver653\utilities-1.0\x86-win32\bin\make.exe: *** [Sender/Debug/Sender.sm] Error 1
Build Failed in Project 'Sender' (Process Exit Value was 2): 2014-01-09 15:55:02 (Elapsed Time: 00:01)


应该是那些函数在编译时没有找到,不知道怎么添加到工程里,让workbench可以编译时找到,sockLib应该是核心的函数库,应该能自动找到的,实在搞不定,求大家帮帮忙!小弟在此谢过了!
...全文
2256 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohaoasd 2016-04-26
  • 打赏
  • 举报
回复
楼主,请问你最后解决了吗
志的世界 2014-08-01
  • 打赏
  • 举报
回复
我感觉是不是一些库你没有加上去 阿 ?
lizongjun126com 2014-01-13
  • 打赏
  • 举报
回复
我觉得可能网络不能再partion里面用,你可以试试module OS编译一下
基于vxworks 下的并发服务器访问 #include "ClientList.h" #define SA_LEN sizeof(struct sockaddr_in) #define MYPORT 5000 // 服务端口号 #define BACKLOG 50 //最大连接数 #define BUF_SIZE 200 //缓冲区大小 #define OUT_TIME_SEC 3 //连接超时(在该时间内无数据收发)时间设置(秒/单位) #define CHECK_DELAY 1 //检查超时连接的时间间隔(秒/单位) #define FILE_STATE_OUTTIME 10 //文件状态超时(select()超时 秒/单位) list_client *client_list; //客户端链表 pthread_attr_t pAttr; //线程属性 /********************************************************* * * 功能描述: 检查链表中超时的客户连接,并删除客户链表连接超时的节点 * * 参数: 无 * * 返回值: NULL * * 作者:胡士超 * * 完成日期: 2012.08.09 * * *******************************************************/ void * conn_Timeout(void * data) { time_t cur_time; //当前时间 client_node *temp,*next_node,*tmp_node; while (TRUE) { //获取用于刷新读描述符集的客户节点 tmp_node = client_list->client_head.prev; //获取当前时间 time(&cur;_time); //加锁 pthread_mutex_lock(&client;_list->mutex); //遍历客户链表检查超时的客户节点并将其从链表中移除 temp = client_list->client_head.next; while (temp != &client;_list ->client_head) { next_node = temp->next; //若该 socket fd是用于刷新的描述符则不移除 if(temp->client_sock_fd == tmp_node->client_sock_fd) { temp = next_node; continue; } //判断是否超时 if( (cur_time - temp->time) > OUT_TIME_SEC) { printf("delete a node fd is %d out time is %d\n",temp->client_sock_fd,(cur_time - temp->time)); //从链表中移除 deleteNode_by_sockfd(client_list, temp->client_sock_fd); //刷新读描述符集 if (write(client_list->refresh_fd, "refresh", 7) == ERROR) { perror("client : write failed."); } } temp = next_node; } //解除锁 pthread_mutex_unlock(&client;_list->mutex); //超时检查的间隔 sleep(CHECK_DELAY); } return NULL; } /************************************************** * * 功能描述: 线程函数,创建一个单独线程用来接收客户端发来的请求,并将请求插入客户端链表中 * * 参数: 用于监听的socket描述符指针 lsnfd * * 返回值: NULL * * 作者: 胡士超 * * 完成日期: 2012.08.09 * * ***********************
重庆大学研究生专业实验教学 实验报告书 重庆大学研究生院制 实验课程名称: 嵌入式实时操作系统实验 实验指导教师: 学 院: 专 业: 信号与信息处理 类 别: 学 号: 姓 名: 实验日期: 成 绩: 1 专 业 实 验 报 告 实验名称 嵌入式实时操作系统实验 实验时间 2013-06-08 到 2012-06-09 学生姓名 学号 指导老师 实验进度安排: (一)实验介绍 2013-06-08 周六上午 8:30-11:30 讲授嵌入式实验课程内容及要求,介绍嵌入式实时操作系统 的基本工作原理,并演示嵌入式软件开发流程; 一.重点检查以下基本实验 1.嵌入式系统开发流程—使用 Tornado/VxWorks 开发嵌入式软件 二.任选一个综合实验题目(用于考察嵌入式系统中应用程序及驱动程序编写掌握情况),并 对其功能进行升级; 1. 编写程序,实现以下功能 编写辅助时钟驱动程序,要求当执行 sysAuxClkRateSet2(1)时,辅助时钟的中断频率为 1 分钟 中断一次,并使发光二极管 LED3 和 LED4 交替点亮。 2.编写程序,实现以下功能 系统有三个任务,tClientTask1、tClientTask2 和 tServerTask; 它们之间使用消息队列实现任务间的通信,tClientTask1 和 tClientTask1 发送消息(函数名,如 add 和参数),tServerTask 接收消息,在服务器任务上执行函数(如实现加法运算),将执行的 结果通过消息队列返回给 tClientTask1 和 tClientTask2 任务,tClientTask1 和 tClientTask2 打印 服务器运算出来的结果。 3.编写程序,实现以下功能 系统有三个任务,tClientTask1、tClientTask2 和 tServerTask; 它们之间使用 Socket 接口实现任务间的通信,tClientTask1 和 tClientTask1 发送消息(函数名, 如 add 和参数),tServerTask 接收消息,在服务器任务上执行函数(如实现加法运算),将执行 的结果通过 Socket 接口返回给 tClientTask1 和 tClientTask2 任务,tClientTask1 和 tClientTask2 打印服务器任务 tServerTask 运算出来的结果。 4.编写程序,实现以下功能: 要求系统中有三个任务, tTaskA 和 tTaskB, 以及 tTaskC, 要求实现独立型同步或关联型同步; (可使用二进制信号量或者事件机制)。 5.编写程序,实现以下功能: 将一段内存模拟成虚拟 IO 设备, 并使用该虚拟 IO 设备实现两个任务间的通信(要考虑同步与 互斥机制) 6.系统包含三个任务,一个初始化任务(tInitTask),一个生产者任务(tSendTask),一个消费者 任务(tReceiveTask); 要求 tSendTaskt 与 ReceiveTask 之间使用消息队列传递数据; 要求 tInitTask 能设置 tSendTask 和 tReceiveTask 的优先级, 2 要求 tInitTask 能设置传递消息的数量和消息队列的大小。 7. 编写程序,实现以下功能 要求系统具有两个任务,两个任务之间使用二进制信号和计数式信号量实现同步 当在 windSh 下 执行 semTest 'b' 使用二进制信号量实现任务之间的同步 执行 semTest 'c' 使用计数式信号量实现任务之间的同步 8. 编写程序,实现以下功能 使用二进制信号量实现辅助时钟定时器服务程序与任务之间的同步; 当按下 R2 按钮(irq5 中断按钮)时,停止定时器工作。 9. 编写程序,实现以下功能 当执行 timerTestStart 'w'时,使用看门狗定时器实现信息的周期打印 当执行 timerTestStart 'a'时,使用辅助时钟实现信息的周期打印 当执行 timerTestStop 'w'时,停止看门定时器 当执行 timerTestStop 'a'时, 停止辅助时钟 10. 编写程序,实现以下功能 系统有两个任务 tTaskA,tTaskB; 当 tTaskA 执行时点亮发光二极管 LED3, 当 tTaskB 执行时点亮发光二极管 LED4; 当按下 R2,熄灭 LED3 与 LED4,并删除掉 tTaskA 与 tTaskB 11. 编写程序,实现以下功能 编写辅助时钟驱动程序(1 分钟中断一次),每隔一分钟点亮一次发光二极管,点量发光二极管 要求用字符型 IO 设备驱动程序实现(如使用 ioctl 函数,或者 write 函数)。 12. 编写程序实现以下功能: 系统有两

2,179

社区成员

发帖
与我相关
我的任务
社区描述
xworks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。
社区管理员
  • VxWorks开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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