当前位置:  技术问答>linux和unix

编译时发生“符号参照错误”提示!

    来源: 互联网  发布时间:2015-11-17

    本文导语:  在solaris9下编译socket程序时发生“符号参照错误”提示! 我使用命令"cc test.c -o test" 提示为 bind,accept,listen,gethostbyname,socket“ld:致命的:没有输出写入到test” 但是相关的头文件我也都包含了,以下是源码: #include...

在solaris9下编译socket程序时发生“符号参照错误”提示!
我使用命令"cc test.c -o test"
提示为
bind,accept,listen,gethostbyname,socket“ld:致命的:没有输出写入到test”

但是相关的头文件我也都包含了,以下是源码:
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define PORTNUM 13000
#define HOSTNAMELEN 256
#define oops(msg) {perror(msg);exit(1);}

int main(int ac,char **av)
{
struct  sockaddr_in  saddr;
struct  hostent *hp;
char  hostname[HOSTNAMELEN];
int sock_id,sock_fd;
FILE *sock_fp;
char *ctime();
time_t thetime;

sock_id = socket(PF_INET,SOCK_STREAM,0);
if( sock_id == -1 )
oops("socket create error");

bzero( (void *)&saddr,sizeof(saddr));

gethostname(hostname,HOSTNAMELEN);
hp=gethostbyname(hostname);

bcopy((void *) hp->h_addr,(void *)&saddr.sin_addr,hp->h_length);

saddr.sin_family=AF_INET;
saddr.sin_port=htons(PORTNUM);

if(bind(sock_id,(struct sockaddr*)&saddr,sizeof(saddr))!= 0 )
oops("socket bind error");

if( listen( sock_id,1) != 0 )
oops("socket listen error");

while(1)
{
sock_fd=accept(sock_id,NULL,NULL);
printf("Server catch a connect!n");
if( sock_fd == -1 )
oops("socket accept error");

sock_fp=fdopen(sock_fd,"w");
if( sock_fp == NULL )
oops("fdopen error");

thetime=time(NULL);

fprintf(sock_fp,"the time here is ..");
fprintf(sock_fp,"%s",ctime(&thetime));
fclose(sock_fp);
}

}

|
solaris上这些函数在libsocket里。在连接时加上-lsocket。

    
 
 

您可能感兴趣的文章:

  • 用C写的OO模块,碰到编译器抱怨符号多重typedef,怎么解决呢?
  • 用Jdk编译时出现提示要加 -deprecation 再编译,请教??
  • 我使用.net编译通过,但是使用g++编译不能通过。总是提示我undefined reference to ~myclass()
  • 请问用javac编译一般*.java能通过,但不能编译Servlet写的*.java.提示javax.servlet.http不存在。
  • ubuntu 10.10出现极其诡异的情况,使用gcc编译没任何反应,可以继续输入,但是不提示任何错误;使用make编译效果一样;
  • 菜鸟问题: redhat linux 编译一个最简单的c程序, 其中包含了<studio.h>头文件,但在gcc编译时,提示找不到studio.h文件,请问各位大大
  • g++ 编译错误提示????
  • 编译低版本内核,进到initramfs命令提示行是什么问题
  • 编译错误提示
  • 编译 servlet 时,老提示 .....javax.servlet 不存在,为何 ???
  • windows 下makefile 编译提示找不到头文件怎么办?
  • 请问:编译内核时,make bzimage命令后,提示没有这个规则,这有没有影响呀?
  • 编译时提示undefined refirence to "test.c"请求帮助?谢谢!!
  • cygwin编译总提示:/cygdrive/c/android-ndk-r5b is a directory
  • 错误提示太多了 显示不下 如何在编译的时候分屏显示?
  • 我写了一个IDL文件,怎么用idltojava编译不成,提示错误 :--里面
  • root帐户使用GCC编译程序时,提示权限不够!!
  • gcc编译中出现的这种错误提示 stray '357' in program
  • 用anjuta创建的gnome 2.0 project的c++程序无法编译,提示缺少gtkmm/xxx文件
  • g++编译联接都通过,运行却提示"段错误",怎么回事?
  • 有没有什么好方法让cc编译后的错误提示输出到某个文件上而不是屏幕上?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux/centos源码安装nginx编译配置选项参数介绍
  • 请教:JSP编译器编译成字节码,跟别的编译器编译出来的有什么不同呢?
  • CentOS 6内核升级:下载编译启用新内核版本详细过程
  • 编译GCC时能不能只编译C/C++的编译器?
  • 高速的网络抓包库PF_ring介绍及编译安装
  • 关于arm交叉编译器4.3.3编译程序报错,但是3.4.5却能编译通过的问题
  • JB下,我的程序编译得好慢!请问用什么方法编译才可以快一点?或编译顺序改变一下?
  • 请问gdb是不是只能调试gcc编译的程序,在unix下用其它编译器编译的程序是不是不一定能用gdb调试的?
  • CentOS 6内核升级:下载编译启用新内核版本详细过程 iis7站长之家
  • 问:关于gcc编译器和g++编译器
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.
  • 在cygwin编译驱动程序要不要交叉编译?
  • 关于如何把编译进内核的编译成模块
  • C编译器 c++编译器 wieldylcc
  • Linux下gcc编译时,如何以静态链接的形式编译?
  • PROC开发时 //注释编译不通过 如何设置使用cpp编译。
  • 编译失败后如何再继续编译
  • 编译qt-x11,最后编译生成可执行文件时候,make出错
  • 如何查看已编译安装软件的编译命令行
  • 请问哪里有反编译.class文件的反编译器?
  • linux下有没有能编译出16bit代码的C语言编译器?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3