Olá!
Não consigo compilar o meu programa.
Abaixo, minha postagem original, mas não consegui encontrar problemas no código. Acredito que o problema seja na codificação. Devem haver alguns caracteres que o terminal não exibe, mas que estão lá e o linux não reconhece…
Estou editando meus arquivos .c e .h com o Notepad++, enviando para um computador remoto e tentando compilar pelo Putty (terminal ssh).
Meu computador é windows 7 e o remoto é Linux (CentOS)
já testei converter para UTF-8(sem BOM),UTF-8 e ANSI. Este erro aparece quando eu uso ANSI. Com UTF-8 (os dois… por acaso nao sei o que é BOM), ele acusa a presença de certos caracteres que impedem ele de compilar.
É o Notepad++ que está convertendo errado, estou escolhendo a codificação errada ou outra coisa?
Acredito que cometi um erro com o typedef, mas não consigo encontrar.
Tenho os arquivos:
fonmFunctions.c
fonmFunctions.h
fonmTypes.h
estou tentando compilar o
fonmFunctions.c
passo o comando
gcc -o fonmFunctions fonmFunctions.c
e recebo os erros:
In file included from fonmFunctions.c:15:
fonmFunctions.h:18: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before 'fonmGetLanguageIndex’
fonmFunctions.c:36: error: expected ‘,’ or ‘;’ before ‘fonmLanguageType’
Arquivo “fonmFunctions.c”:
#include <string.h>
#include "fonmFunctions.h"
#include "fonmTypes.h"
fonmLanguageType
fonmGetLanguageIndex(char * input)
{
fonmLanguageType result;
byte counter = 0;
//we use first to last enum element to ensure that this loop will work
//whatever is the number of available languages
for (result = fonmEnglish; result <= fonmInexistentLanguage; result++)
{
if (strcmp (input,fonmLanguageString[counter]) == 0)
return result;
counter++;
}
//if this code is reached, input is invalid
return fonmInexistentLanguage;
}
Arquivo “fonmFunctions.h”:
fonmLanguageType
fonmGetLanguageIndex(char *);
Arquivo “fonmTypes.h”:
typedef unsigned char byte;
typedef enum fonmLanguage
{
fonmEnglish,
fonmPortuguese,
fonmInexistentLanguage
}
fonmLanguageType;
const char* fonmLanguageString[] = {
"fonmEnglish",
"fonmPortuguese",
""
}
A única função que eu tenho deve retornar um elemento do tipo fonmLanguageType, definido em “fonmTypes.h”. Eu acho que cometi um erro nesse typedef, mas não consegui encontrar qual é. De qualquer forma, acho que o erro está aí por que o compilador aponta o erro na declaração da função tanto em “fonmFunctions.c” quanto em “fonmFunctions.h”
Ou talvez esteja deixando passar algum detalhe mais basico…
Alguém me ajuda? =D
Desde já, agradeço