Criei uma estrutura do tipo pessoa e pretendo usá-la em uma lista encadeada, porém o seguintes erros aparecem: 
'No' has no member named 'dados', 'No' has no member named 'prox' e  unknow type name 'p' 
  
O programa nem chegou a rodar, alguém pode me ajudar? 
  
O arquivo .h é o seguinte: 
__________________________________________________________________ 
#ifndef Pessoa 
#define Pessoa
 
typedef struct pessoa{
    char nome[25];
    char sobrenome[25];
    int registro;
}Pessoa;
 
typedef struct no{
    Pessoa dados;
    struct no *prox;
}No;
 
typedef struct lista{
    No *cabeca;
    No *cauda;
    int tamanho;
}Lista;
 
No* criaNo(Pessoa p);
Lista* criaLista();
void inserir(Lista *l, Pessoa p, int posicao);
void remover(Lista* l, int registro); //pesquisa registro e remove a pessoa
void imprimeLista(Lista* l);
void destruirLista(Lista* l);
 
#endif
 
________________________________________________________________
 
O arquivo .c é o seguinte:
 
_______________________________________________________________
 
#include <stdio.h>
#include <stdlib.h>
#include "Pessoa.h"
 
No* criaNo(Pessoa p)
{
    No* n;
    n=(No*)malloc(sizeof(No));
    n->dados = p;
    n->prox = NULL;
    return n;
}
 
Lista* criaLista()
{
    Lista* l = (Lista*)malloc(sizeof(Lista));
    l->cabeca = NULL;
    l->cauda = NULL;
    l->tamanho = 0;
    return l;
}
void inserir(Lista *l, Pessoa p, int posicao);
 
{
 //já está pronta, porém não achei necessário colocá-la
}
 
void remover(Lista* l, int registro)
{
     //já está pronta, porém não achei necessário colocá-la
}
 
void imprimeLista(Lista* l)
{
    //já está pronta, porém não achei necessário colocá-la
}
 
void destruirLista(Lista *l)
{
    //já está pronta, porém não achei necessário colocá-la
}