[quote=GilsonNunes][quote=Hulkmarciano][quote=fabioEM]Estou lendo o texto e no 1 capitulo fiquei com uma dúvida com relação a seguinte frase:
Um executável C não é portável; não podemos executá-lo no Windows e no
Linux sem recompilação.
Me perdoem pela ignorância o que vem a ser essa recompilação?[/quote]
Toda vez que vc cria um programa em c vc tem que compila-lo para q ele execute. Ao compilar o compilador “traduz” a linguagem c em linguagem de maquina q é interpretada pelo SO. Como o Windows e o GNU/Linux possuem forma de “interpretar” os comandos diferentes logo vc tem que re-compilar o código para usar em outro SO.[/quote]
apesar q “ter q recompilar”, não significa “não ser portável”.
até pq nos sites de mts apps feito em java, vc tem lá
Windows>>
Linux>>>
ou seja, recompilado.
não?
um exemplo é o SPED Fiscal.
http://www.receita.fazenda.gov.br/Sped/Download/SpedPisCofinsPVA/SpedFiscalPisCofinsMultiplataforma.htm
“xxxxxMultiplataforma.htm”
[/quote]
quando você faz um executável jar em java, ele não é obrigatoriamente multiplataforma só por que você o fez em java, para permitir vários SOs você ainda precisatomar cuidado com particularidades que mudam de um SO para outro, um exemplo clássico é o endereço de arquivos que começa com barra (/) nos derivados de unix e começa com uma letra em windows, caso ao ter sido criado o código tenha-se tomado cuidado com isso o executavel em java não precisa ser re-compilado.
em C é diferente, mesmo que seu código funcione em qualquer uma das duas plataformas, você não consegue executar um executável feito em c++ compilado em ambiente linux num windows ou o contrário (existe o wine que muda isso até certo ponto mas isso ja é outro caso, parece que não é 100% garantido), você ainda precisaria pegar esse fonte e re-compilar no outro SO para funcionar nele enquanto que em java não precisa, isso também é mais complicado, parece que para threads por exemplo tem apis diferentes para windows e linux, parece que tem umas complicações a mais, não sei muito a respeito de como funciona no caso do c++ mas acredito que seja isso.
Ja ouvi falar de uma API (acho que se tratava de uma API) c++ que o código com ela funciona bem tanto em windows quanto em linux ,mas parece que mesmo assim exige recompilação, acho que era “QT” o nome, não tenho certeza.