- 论坛徽章:
- 0
|
谢谢!这是我测试APUE上的头文件遇到的问题。
mine.h的内容:
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
static void err_doit(int errnoflag,const char *fmt,va_list ap)
{
int errno_save;
char buf[1000];
errno_save=errno;
vsprintf(buf,fmt,ap);
if(errnoflag)
sprintf(buf+strlen(buf),":%s",strerror(errno_save));
strcat(buf,"\n");
fflush(stdout);
fputs(buf,stderr);
fflush(NULL);
return;
}
void err_sys(const char *fmt,...)
{
va_list ap;
va_start(ap,fmt);
err_doit(1,fmt,ap);
va_end(ap);
exit(1);
}
然后我在test.c文件调用err_sys()函数。
test.c的内容:
#include “mine.h”
int main(void)
{
err_sys("this is test\n");
return;
}
test.c文件和mine.h文件在同一文件夹,但是我"gcc -o test.out test.c"编译test.c的文件时,编译器报错“undefined reference to `erroutput'”。
另外:刚才各位仁兄说.h文件里是声明,.c文件里是实现,是怎么回事?谢谢了~
[ 本帖最后由 boerhawking 于 2008-12-8 09:49 编辑 ] |
|