c语言的socket编程问题

gubinx 2003-07-11 08:15:57
有没有用过基于firebird的web系统,具体是nju0.95,在编译的时候出现如下系统提示:
未定义 文件中的
符号 在文件中
socket kernel.a(kernel.o)
setenv httpd.o
accept kernel.a(kernel.o)
flock bbs0an.o
bind kernel.a(kernel.o)
setsockopt kernel.a(kernel.o)
inet_addr kernel.a(kernel.o)
inet_ntoa kernel.a(kernel.o)
listen kernel.a(kernel.o)
connect kernel.a(kernel.o)
ld: 致命的: 符号参照错误. 没有输出被写入njuwebbsd
collect2: ld returned 1 exit status
make: *** [njuwebbsd] Error 1

请问这是为什么,源程序里边已经包含了socket.h types.h
我很菜,恳请达人帮忙啊!
...全文
49 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ITMSC 2003-07-13
  • 打赏
  • 举报
回复
应该习惯使用man命令查找函数所要的头文件和库文件。
例如:在执行man socket命令。
ari 2003-07-12
  • 打赏
  • 举报
回复
#include <sys/socket.h>
#include <netinet/in.h>

同意
加-lnsl试试
ari 2003-07-11
  • 打赏
  • 举报
回复
编译时加上-lsocket参数

参阅本论坛的FAQ.
wwwunix 2003-07-11
  • 打赏
  • 举报
回复
编译时加上-lsocket参数
wwwunix 2003-07-11
  • 打赏
  • 举报
回复
加-lnsl试试
gubinx 2003-07-11
  • 打赏
  • 举报
回复
setenv和flock已经解决了,但是inet_addr和inet_ntoa怎么解决阿,系统提示说符号属于隐含从属的/usr/lib/libnsl.so.1)这个库也存在啊,怎么还是不行啊
现在的系统提示如下:

未定义 文件中的
符号 在文件中
inet_addr kernel.a(kernel.o) (符号属于隐含从属的/usr/
lib/libnsl.so.1)
inet_ntoa kernel.a(kernel.o) (符号属于隐含从属的/usr/
lib/libnsl.so.1)
ld: 致命的: 符号参照错误. 没有输出被写入njuwebbsd
collect2: ld returned 1 exit status
make: *** [njuwebbsd] Error 1

wwwunix 2003-07-11
  • 打赏
  • 举报
回复
你用man看看这些函数还需要哪些库.
如:
man flock
gubinx 2003-07-11
  • 打赏
  • 举报
回复
加上-lsocket参数以后系统提示如下:
未定义 文件中的
符号 在文件中
setenv httpd.o
flock bbs0an.o
inet_addr kernel.a(kernel.o) (符号属于隐含从属的/usr/
lib/libnsl.so.1)
inet_ntoa kernel.a(kernel.o) (符号属于隐含从属的/usr/
lib/libnsl.so.1)
ld: 致命的: 符号参照错误. 没有输出被写入njuwebbsd
collect2: ld returned 1 exit status
make: *** [njuwebbsd] Error 1

还是没有完全解决问题啊,怎么办啊?

23,115

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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