podemos compilar o código-fonte dos programas do Windows?

0

Perdoe minha falta de conhecimento, mas estou pensando se um código-fonte para um programa de código aberto do Windows pode ser compilado e seu executável usado no Linux (sem o Wine). No meu caso, é o Ant Renamer , que eu uso atualmente com o Wine (eu estava insatisfeito com as alternativas do Linux, que não tinham funcionalidades ou uma GUI).

    
por Gamnamno 12.10.2017 / 21:43

1 resposta

4

A resposta curta é não. Uma resposta mais longa geralmente não é. Depende de que bibliotecas o programa depende.

Dependendo do idioma em que o programa está escrito, a biblioteca padrão fornecida com o compilador ou o interpretador pode incluir mais ou menos funcionalidade. C , uma linguagem onipresente no sentido de que apenas plataformas extremamente incomuns não têm um compilador C, tem uma biblioteca padrão que é bem pequeno. Por exemplo, ele tem um conceito de E / S de arquivo, mas não de diretórios, e sua interface com o usuário é limitada à entrada padrão, saída padrão e erro padrão. Qualquer outra coisa requer fazer suposições sobre o sistema operacional ou usar uma biblioteca de terceiros. Algumas linguagens escolhem manter o que C pode fazer em sua biblioteca padrão, de modo que a biblioteca padrão deles possa ser executada em qualquer lugar em que o C seja executado.

Outras linguagens de programação fornecem mais recursos em sua biblioteca padrão e podem ter bibliotecas de terceiros padrão de fato, portáveis, pelo menos, entre o Unix e o Windows. Portátil não no sentido de que o mesmo código de biblioteca é executado em ambos, mas no sentido de que há uma implementação do Windows e uma implementação do Unix, e um programa que usa a biblioteca não precisa se importar com qual deles está sendo usado. Por exemplo, Python 's biblioteca padrão tem interfaces para gerenciar arquivos e diretórios e vem com algumas bibliotecas GUI básicas (não tão bonitas ou sofisticadas quanto o que pode ser feito, mas elas ' re portáteis e relativamente simples de usar); Além disso, há algumas bibliotecas de terceiros portáteis mais avançadas .

O Unix e o Windows têm muitos recursos que não estão disponíveis no outro sistema ou que funcionam de forma muito diferente. As interfaces gráficas do usuário funcionam de maneira muito diferente. Algumas bibliotecas Unix foram portadas para o Windows, mas as interfaces do Windows não foram portadas para o Unix. O código GUI do Windows está mais integrado ao sistema operacional (a GUI do Unix foi projetada em camadas separadas desde o início) e é um código proprietário (as bibliotecas que vêm do mundo Unix são em sua maioria de código aberto), então seria muito difícil para portar para Unix: você basicamente teria que executar o Windows em uma máquina virtual. O Wine tenta fornecer uma implementação independente das bibliotecas do Windows, mas é um trabalho muito difícil.

Ant Renamer é escrito em um dialeto Pascal para o qual as ferramentas foram desenvolvidas para o Windows, ou seja, Delphi . Houve uma porta Linux em algum momento, mas não sei o quanto foi bem-sucedida. As bibliotecas da GUI, em particular, teriam que ser reescritas das interfaces do Windows para algumas Unix. A resposta prática é que, se o Ant Renamer puder funcionar no Linux, será necessário um esforço significativo, possivelmente mais do que escrevê-lo do zero com base em uma descrição precisa de seu comportamento.

Para as pessoas que encontraram essa pergunta em uma pesquisa, mas que tinham um problema diferente - você pode usar uma máquina Unix para compilar a fonte de um programa do Windows para rodar em uma máquina Windows, com um crosscriler como, por exemplo, mingw .

    
por 13.10.2017 / 00:39