1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Problemas com #include em C

Discussão em 'Programação' iniciada por Dextro, 19 de Março de 2007. (Respostas: 8; Visualizações: 3459)

  1. Já o tinha escrito no meu blog e aproveito e coloco-o aqui também. Any help? :(
     
  2. LinuxWarrior

    LinuxWarrior Power Member

    Que erros é que tens???
    Devias usar um Makefile.
     
  3. Eu estou a usar um makefile, só não o inclui no zip por esquecimento (o Ajunta é uma IDE bem porreira :P).

    Os meus erros são variados dependendo do sitio onde incluo o sqlite3.h. Ora me diz que está á espera de um ( antes do * no menu.c. Ora me diz que o opendb() e closedb() não estão defenidos... É a festa...

    (os includes dão-me dores de cabeça -_-')

    EDIT: aqui está o codigo com makefile

    Pensei até que ao colocar todas as referencias ao sqlite3.h num unico ficheiro e ao inclui-lo quando necessário resolvesse os problemas mas não funcionou. Tentei criar um typedef para não ter de usar o tipo sqlite3 e não funcionou... Sou mesmo n00b mas pronto...
     
    Última edição: 19 de Março de 2007
  4. LinuxWarrior

    LinuxWarrior Power Member

    O teu problema é k estas a usar tipos nao definidos.
    Por exemplo no ficheiro menu.h, a função menu retorna um _Bool e recebe uma cena do tipo sqlite3, o que acontece é que os tipos nao estao definidos.
    Tens que definir os tipos e inclui-los onde os usas.
     
  5. LinuxWarrior

    LinuxWarrior Power Member

    alem disso qdo fazes
    Código:
    #include "data.h"
    siginifica que o ficheiro esta na directoria corrente.
    se o que tu pretendes é incluir o ficheiro data.h da directoria include, tens que fazer:

    Código:
    #include "include/data.h"
    Espero que tenha ajudado!
     
  6. Dá-me um exemplo de um tipo não defenido.

    o tipo sqlite3 é definido no ficheiro sqlite3.h (que não é meu mas sim uma biblioteca do sqlite) e o _Bool foi-me ensinado na universidade como sendo um tipo base do C (ANSI). Sou n00b mas não tanto.

    Isso dos includes passou-me ao lado quando fiz as alterações no ajunta... deixa verificar.
     
    Última edição: 19 de Março de 2007
  7. OK andei a mexer e reduzi o numero de erros mas como eu já ando aqui a tentar combinações sem saber bem o que ando a fazer com os includes não é propriamente bom sinal.

    Anyway aqui fica o codigo modificado e os erros que ainda dá:
    Código Fonte

    Apesar do ficheiro sqlite3.h estar lá incluído...
     
  8. LinuxWarrior

    LinuxWarrior Power Member

    verifica a documentação da tua versao do sqlite e ver se as funções que tas a usar tem a mesma assinatura.
     
  9. Descobri o problema e foi mesmo azelhice minha. Bastou-me adicionar -lsqlite3 ás flags do linker e passou a funcionar. Foi mesmo o facto de eu ser um n00b a usar makefiles.

    Ao menos isto fica aqui para registo, eu pelo menos sei que me fartei de procurar por um problema igual e não encontrei nada :(

    PS: anyway obrigado por me avisares daquela historia dos includes que me tinha passado ao lado e eu tinha falta de alguns 3 em sqlites ;)
     

Partilhar esta Página