繁体   English   中英

C程序中未定义的参考错误

[英]Undefined reference error in a C program

我写了一个C程序pgm.c 它包含一个功能readfile.so 我也写了一个头文件do.h 然后,我写这个readfile在一个单独的程序功能ini.c并列入do.h这个节目了。 当我编译pgm.c ,出现错误"pgm.c:(.text+0x2e): undefined reference to readfile"

我的代码是:

do.h
    extern int readfile( FILE *in );

pgm.c
    #include<stdio.h>
    #include"do.h"
    int main(int argc,char **argv)
    {
     FILE *in;
     in=fopen(argv[1],"r");
     readfile(in);
    }

ini.c
    #include <stdio.h>
    #include <stdlib.h>
    #include <limits.h>
    #include <math.h>
    #include <float.h> 
    #include"do.h"
    int c;
    int readfile( FILE *in )
    {
    while( c == '#' || c == '\n' )  
    {
      if( c == '#' ) 
       {
        while( ( c = getc(in) ) != '\n' );
       }
      if( c == '\n' ) 
       c = getc( in ); 
     }
      if( c == EOF )
      break;
      else
      {
      printf("hai");
      }
    }
    return 1;
    }

我的程序有错误吗? gcc pgm.c编译

C区分大小写;

extern int readfile( FILE *in );

声明的功能与之不同;

int readFile( FILE *in )

选择一个机壳,并在各处使用该机壳以实现相同功能。

另外,您需要检查fopen的返回值。

如果返回NULL则函数readfile (取决于大小写)将崩溃

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM