主C程序没有找到标题和方法

时间:2013-05-19 05:53:08

标签: compilation runtime main

不确定如何在标题中更好地解释这一点。基本上我正在学习如何在C中分离我的代码。我有一个main,相当于java中的ArrayList类(但转换为c并且非常基本)和一个头文件,它声明了我的struct和所有正在使用的函数。我正在使用文本中的所有示例代码,我正在使用最新版本的dev c ++ for Windows 8.

每当我尝试编译main时,我得到: 在函数主要未定义的引用“newList” [错误] Id返回1退出状态

这是我的代码:

main.c
#include <stdio.h>
#include "ArrayList.h"

int main(int numParms, char *parms[]){
     list myList;
     myList = newList(myList);

     printf("End");
     return 0;  
}

ArrayList.c
#include <stdio.h>
#include "ArrayList.h"

list newList(list myList){
 myList.size = 0;
 return myList;
}

list add(list myList, int value){
  myList.values[myList.size] = value;
  myList.size++;
  return myList;
  }

int get(list myList, int position){
  int entry;
  entry = myList.values[position];
  return entry;
}

int size(list myList){
 return myList.size;
}

list delete(list myList, int position){
     int count;
   for(count =0; count<(myList.size-1); count++){
        myList.values[count] = myList.values[count+1];
   }
   myList.size --;
   return myList;
}

void print(list myList){
int count;
printf("Current list contents:\n");
if (myList.size > 0){
    for (count=0; count<myList.size; count++){
        printf("Element %d is %d\n", count, get(myList, count));
        }
    printf("\n");
}
else{
    printf("The list is empty\n\n");
}
 }

ArrayList.h
#define MAX_SIZE 100
typedef struct{ 
int size;
int values[MAX_SIZE];       
 }list;

 list newList(list);
 list add(list, int);
 int get(list, int);
 int size(list);
 list delete(list, int);
 void print(list);

1 个答案:

答案 0 :(得分:0)

这实际上是一个链接器问题。编译没问题,但是当链接器尝试组装片段时,它无法在任何地方找到newList。我的猜测是你没有编译文件ArrayList.c并将结果链接到你的项目。