Por que alguns programas em C rodam no Windows mas não no LINUX? [RESOLVIDO]

13. Re: Por que alguns programas em C rodam no Windows mas não no LINUX? [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 13/07/2019 - 00:56h

Bacagine escreveu:

Seria importante ver a mensagem de erro específica que o compilador mostra. Mas eu não consigo pensar em nenhum caso válido pelo qual um programa devesse chamar main() explicitamente. A forma como você fez isso no seu programa denota um erro de modelagem.

Esse código não foi feito por mim, eu fiz download dele em um site chamado Script Brasil.


Mais um para a lista de sites pouco confiáveis...

Quando usava Windows o código printava isso na tela, no entanto não consigo fazer isso no LINUX
Essa é a mensagem de erro:
$ gcc Calculadora_Lin.c -o Calculadora
Calculadora_Lin.c: In function ‘adicao’:
Calculadora_Lin.c:22:12: warning: implicit declaration of function ‘main’ [-Wimplicit-function-declaration]
main();
^~~~


Isso indica que o compilador do Linux é mais aderente ao padrão do C do que o que você usa no Windows. A mensagem de erro acontece porque você está tentando usar a função main() antes de a declarar, e o compilador reclama porque, sem a declaração da função, ele não tem como saber se a função foi invocada da maneira correta.

Como você já viu que o programa está com problemas, eu espero que você o ajuste para ficar mais parecido com o que eu mostrei, e sobre o que você já respondeu em outra mensagem.


... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)


  


14. Re: Por que alguns programas em C rodam no Windows mas não no LINUX?

???
gokernel

(usa Linux Mint)

Enviado em 13/07/2019 - 07:55h


//-------------------------------------------------------------------
//
// C SIMPLE TEMPLATE ... :
// Um simples exemplo de como codar para Windows e Linux ...
//
// FILE:
// simple.c
//
// COMPILE:
// gcc simple.c -o simple -O2 -Wall
//
//-------------------------------------------------------------------
//
#include <stdio.h>
#include <stdlib.h>

void funcao (void) {
#ifdef WIN32
system ("cls");
// ... TUDO PARA WINDOWS AQUI ...
#endif
#ifdef __linux__
system ("clear");
// ... TUDO PARA LINUX AQUI ...
#endif
}

int main (int argc, char **argv) {
funcao();
return 0;
}



OBS: O código acima é claro ... não li todos os posters ...

OBS2: Isso acima ( #ifdef, #endif ) em C chama-se: diretiva de compilação !!!





15. Re: Por que alguns programas em C rodam no Windows mas não no LINUX? [RESOLVIDO]

Gustavo Samuel Bacagine Azevedo
Bacagine

(usa Arch Linux)

Enviado em 13/07/2019 - 23:38h

Obrigado a todos pelas respostas.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts