Paulo, a função main nem sempre deve retorna um valor, somente se você quiser, quando a função começa com void, significa que não retorna valor nenhum, e ainda você falou que a função main DEVE retornar um valor inteiro, isso também esta errado, a função pode retornar um char, float, double, usigned float...e mais um monte...
Att. Anderson P. Matos Analista de Suporte Linhares Serviços On-Line Tel: (27) 2103-8100 E-mail: [EMAIL PROTECTED] --------------------------------------------------------- Tel.: (27) 2103-8105 Cel: (27) 9936-4186 E-mail: [EMAIL PROTECTED] Messenger: [EMAIL PROTECTED] Skype: andersonpmatos -----Mensagem original----- De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome de Paulo Pires Enviada em: sexta-feira, 23 de fevereiro de 2007 08:00 Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR) Assunto: Re: [FUG-BR] C/C++ On 2/21/07, Rodrigo Ferreira <[EMAIL PROTECTED]> wrote: > Bom dia lista, venho tentando a algum tempo compilar/rodar arquivos .c e > .cpp, porem não obtive sucesso, antes de migrar para o FreeBSD eu > utilizava o turbo c++ no win, e agora no Free estou tentando usar o > gcc/g++, só que no programa mais simples que estou tentando fazer > aparece erro. > > Programa teste: > > #include "/usr/include/stdio.h" > #include "/usr/include/conio.h" > > void main (void) > { > puts ("Alo Mundo"); > getch(); > } > > dai quando eu dou g++ teste.cpp, aparece esses erros: > teste.cpp:2:32: /usr/include/conio.h: No such file or directory > teste.cpp:5: error: `main' must return `int' > teste.cpp: In function `int main(...)': > teste.cpp:7: error: `getch' undeclared (first use this function) > teste.cpp:7: error: (Each undeclared identifier is reported only once > for each function it appears in.) Um dos erros que eu ia apontar já foi apontado pelo compilador C++ (em C não seria indicado como erro): a função main() deve retornar um valor inteiro (int), de modo que tem que ser declarada como "int main()" ou "int main(int argc, char **argv)" (ou ainda "int main(int argc, char *argv[])"). A isso está ligado ou outro erro no seu programa, mas que não está indicado acima: para sair da função que retorna int, você tem obrigatoriamente que ter um comando "return valor;", onde "valor" é uma expressão com valor inteiro (geralmente -- especialmente no UNIX -- main() retorna 0 quando é bem sucedido), ou uma chamada "exit(valor);", onde "valor" também é inteiro. Quando você está incluindo arquivos de cabeçalho da biblioteca padrão, a convenção é usar '#include <cabeçalho.h>', ao invés de '#include "cabeçalho.h"'. Esta última forma, usando aspas, é usada para arquivos de cabeçalho criados pelo próprio programador, para distingüi-los dos cabeçalhos padronizados. Também não é usual colocar o caminho completo dos arquivos, especialmente quando se está usando cabeçalhos da biblioteca padrão (com <>, e não com aspas, pois o compilador sabe como encontrá-los). Como outros já disseram, conio.h não é um cabeçalho padrão e a função getch(), que seria declarada nesse cabeçalho específico dos compiladores da Borland, também não é comumente aceita no UNIX (pelo menos não com o mesmo sentido que teria no compilador da Borland). Principalmente enquanto você está aprendendo, procure aprender a linguagem padrão, ao invés de uma implementação específica. Outra coisa: seu arquivo indica programa em C++, mas o código que você escreveu é C. Não que esteja estritamente errado, mas a minha recomendação pessoal é que se você vai usar apenas C em um módulo de programa, use o compilador C (costuma ser mais rápido) e coloque nos arquivos a extensão ".c", ao invés de ".cpp" ou ".cc". Ou, então, aprenda logo C++ através de exemplos usando recursos próprios do C++, se quiser usar os recursos que essa linguagem oferece antes de ficar "viciado" em C puro e simples. -- Um abraço. Paulo A. P. Pires ... Qui habet aurem audiat quid Spiritus dicat ecclesiis. ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

