用Proc作一个从数据库取出数据生成CSV文件的程序,进行编译的时候为什么老出现以下的Error:BKN202Z01.o(.data+0x924): undefined reference to `pgBcRKN202t01'
BKN202Z01.o(.data+0x930): undefined reference to `stBcRecRKN202t01'
collect2: ld returned 1 exit status
make: *** [BKN202Z01] Error 1其中`pgBcRKN202t01',是定义CSV文件的结构体,这个已经在程序中是定义过了的,我保证不是定义的问题,但为什么老说在.o文件找不到呢?是不是编译环境有问题,或者别的什么问题,有哪位以前碰到过这种问题的吗?我的开发环境是linux

解决方案 »

  1.   

    有可能,proc的编译环境不好搞,可以先用一个简单的pc文件测试一下编译的问题.
      

  2.   

    1.BKN202Z01.o这个文件编译是否通过了?
    2.是否正确的读取文件路径了?
      

  3.   

    pgBcRKN202t01
    这个结构体的定义在和这个.o文件的源文件是在一起的吗?
    编译连接时确定把定义结构体的文件加进去了吗?
      

  4.   

    最好把这些文件多放在一个folder下,先把这些.o文件delete掉,下ls看看有没有权限对这个define文件有权限看到,在看看make file里面是不是写的有问题,应该是.pc.c:
    echo ".pc.c"
    proc $(PROCFLAGS) auto_connect=yes char_map=string sqlcheck=semantics iname=$*.pc.c.o:
    echo ".c.o"
    # $(CC) $(CFLAGS) -c -I$(INCDIR) $*.c  -q maxmem=10240
    多个点o整合类似如下:
    $(OBJDIR)/main.o : $(SRCDIR)/${*F}.c
    xlc $(CFLAGS) -c -I$(INCDIR)  $? -o $@ -q maxmem=8192