链接重新声明为不同类型的符号

时间:2011-06-30 21:15:31

标签: objective-c xcode4

我有一个Objective-c程序,我在普通c中添加了一个带有链表的lib。 这是标题:

    typedef struct { int v; int w; } Edge;
Edge EDGE(int, int);

typedef enum tagTipoNodo {
    k_casellaPolozia,
    k_casellaKiller
} tipoNodo;

typedef struct node *link;
struct node { int v; link next; };

typedef struct node2v *link2v;
struct node2v { int v; int val; link2v next; };
link2v NEW2v(int v, int val, link2v next);
void DEL2v(int v, link2v *lista);
void Update2v(int v, int val, link2v lista);
link sort2x(link2v lista);
link sort2xDecr(link2v lista);
int maxInList(link2v lista);


struct graph { int V; int E; link *adj; int *tipo;};

typedef struct graph *Graph;
Graph GRAPHinit(int);
 void GRAPHinsertE(Graph, Edge);
 void GRAPHremoveE(Graph, Edge);
  int GRAPHedges(Edge [], Graph G);
Graph GRAPHcopy(Graph);
 void GRAPHdestroy(Graph);

void GRAPHShow(Graph G);
void ingr();
link nodeInDistance(Graph G, int A, int distance);
link nodeInDistanceOfType(Graph G, int A, int distance, tipoNodo tipo);
int distance(Graph G, int A, int B,tipoNodo tipo);
int shortestPath(Graph G, int A, int B, tipoNodo tipo, int *percorso);
link shortestPathList(Graph G, int A, int B, tipoNodo tipo);

int distanceForAllocation(Graph G, int A, int B, tipoNodo tipo);
void setPesoForNode(int n,int poliziotto);
void resetPesoForNode(int poliziotto);
void resetPesoForAllNodes();

void initCasPoliz();
link NEW(int v, link next);
void DEL(int v, link *lista);
link copyList(link l); 
int lengthList(link l);
int lengthListOfType(Graph G,link l,tipoNodo tipo);
void deleteList(link *lista);
int isPresentInList(link lista,int val);
void printCaselleVietate();
在模拟器中

所有编译都很好,但是当我尝试编译设备时 出现此错误 链接重新声明为...... [...]中的不同类型的符号 我怎样才能解决这个问题? 感谢

1 个答案:

答案 0 :(得分:0)

我发现我有一个#include“linkedList.h” helloworld.h和helloworld.m ...... 在模拟器中一切顺利......奇怪的是!

然而另一件奇怪的事情......: 在“linkedList.h”中我有链接和link2k以类似的方式定义...但link2k没有给我那个错误... mha!

使用#import而不是#include。它的主要功能是不需要使用标题保护