Como compilar para o OS X no Linux ou no Windows?

gostaria de adicionar as minhas aplicações em C / C++ ao OS X.

Eu não tenho um Mac, mas tenho Linux e Windows. Há alguma ferramenta para isto?

Author: Alex B, 2009-03-29

11 answers

Parece haver alguns scripts que foram escritos para ajudá-lo a configurar a compilação cruzada para o Mac; não consigo dizer quão bons eles são, ou como aplicável ao seu projecto. Na documentação, referem-se a estas instruções para compilação cruzada de 10.4, e estas para compilação cruzada de 10.5; essas instruções podem ser mais úteis do que o script, dependendo de quão bem o script se adapta às suas necessidades.

Se o seu programa estiver livre ou aberto o software de fonte e, em seguida, você pode querer em vez disso para criar um MacPorts portfile (documentação aqui), e permitir que seus usuários construir seu programa usando o MacPorts; que, geralmente, é a forma preferencial para instalar portátil livre ou software de código aberto no Mac OS X. MacPorts tem sido conhecido para rodar em Linux no passado, assim, pode ser possível desenvolver e testar seu Portfile no Linux (apesar de, obviamente, precisa ser testado em um Mac).

 22
Author: Brian Campbell, 2009-03-29 02:02:04

Para o Linux, existe um compilador GCC pré-construído (a partir de fontes GCC modificadas da Apple).

Https://launchpad.net / ~flosoft/+archive/cross-apple

Actualizar para 2015

    Depois de tantos anos, o IDE padrão da indústria agora suporta OSX/iOS/Android.

Http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/311

  1. O Radstudio da Embarcadero também suporta a construção Aplicativos OSX/iOS / Android no Windows.

  2. Esta resposta por Thomas {[5] } também fornece uma ferramenta de compilação cruzada.

Para todas estas opções ainda precisa de um verdadeiro dispositivo mac/i para testar a aplicação.

 47
Author: Viktor Latypov, 2017-05-23 12:34:21

Criei um projecto chamado OSXCross que tem como objectivo atingir OS X (10.4-10.9) do Linux.

Suporta actualmente clang 3, 2 até 3, 8 (tronco) (pode usar o seu dist's {[[0]}).
Além disso, você pode construir uma baunilha atualizada GCC também (4.6+).

O LTO também funciona, para ambos, clang e GCC.

Actualmente a utilizar cctools-870 com ld64-242.

Https://github.com/tpoechtrager/osxcross

 27
Author: Thomas, 2015-08-31 17:24:23
  1. Get " VMware Player"
  2. Obter " imagem Mac OS X vm"
  3. compilar/depurar / integrar-e-testar o seu código no novo SO para ter a certeza que tudo funciona

Quando se está a tentar pôr alguma coisa a funcionar em várias plataformas, é absolutamente necessário compilar/executar/integrar/testar na plataforma pretendida. Você não pode simplesmente compilar/executar em uma plataforma e, em seguida, dizer "oh ele deve funcionar o mesmo na outra plataforma".

Mesmo com a linguagem multi-plataforma realmente boa como Java você vai encontrar problemas onde ele não vai funcionar exatamente o mesmo na outra plataforma.

A única maneira que encontrei que respeita o meu tempo/produtividade / capacidade de iterar rapidamente em múltiplas plataformas é usar um VM das outras plataformas.

Há outras soluções, como o dual-boot e outras que não mencionei, mas acho que não respeitam a minha produtividade/tempo. Toma o duplo arranque como um exemplo:
  1. eu faço uma mudança no OS 1
  2. reiniciar para OS 2
  3. Esquece alguma coisa no OS 1.
  4. reiniciar para OS 1
  5. Faça uma alteração no OS 1
  6. reiniciar para OS 2 ... outra vez ...

Lá se vão 30 minutos do meu tempo e eu não fiz nada produtivo.

 6
Author: Trevor Boyd Smith, 2009-04-02 17:09:37

Você precisaria de uma barra de ferramentas para cruzar compile para mach-o, mas mesmo que você tivesse isso, você não teria as bibliotecas da Apple por perto para se desenvolver. Não sei como conseguirias atracar sem eles, infelizmente.

 4
Author: Joel Levin, 2009-03-29 01:52:03
O desenvolvimento da maçã é uma besta estranha. O OS X usa uma porta do GCC com algumas modificações para torná-lo 'appley'. Em teoria, é possível para as fontes para o GCC Apple e toolchain, bem como o kernel Apple e biblioteca headers e construir um compilador cruzado em sua máquina Windows. Porque queres ir por este caminho, ultrapassa-me. Podes comer um Mac mini barato de 600 dólares. O tempo que você investe para obter um compilador cross funcionando corretamente (particularmente com um Windows host for Unix tools) provavelmente vai custar mais do que os $600 de qualquer maneira.

Se estiver realmente interessado em fazer com que a sua plataforma cross do aplicativo veja o Qt, o wxWidgets ou o FLTK. Todos fornecem suporte multi-plataforma com alterações mínimas ao código base. Pelo menos dessa forma tudo que você precisa fazer é encontrar um Mac para compilar o seu aplicativo, e isso não é muito difícil de fazer se você tem alguns amigos tecnicamente mente que não se importa de lhe dar acesso SSH ao seu Mac.

 4
Author: Adam Hawes, 2009-03-29 02:26:31
Definitivamente vais precisar do OS X de alguma forma. Mesmo se você não possui um Mac, você ainda pode tentar algumas alternativas .
 4
Author: Pablo Santa Cruz, 2013-08-09 09:17:17
Encontrei esta pequena documentação na internet.: http://devs.openttd.org/~truebrain/compile-farm/apple-darwin9.txt Isto descreve exactamente o que queres. Estou interessado nele eu mesmo, ainda não testá-lo embora (encontrei-o 10 minutos atrás). A documentação parece boa.
 3
Author: , 2009-05-08 11:47:12

Podes contratar um mac na nuvema partir deste site . Você pode contratá-los a partir de $1, o que deve ser suficiente (a menos que você precisa de acesso de raiz, então você está olhando para $49+).

 2
Author: HexCoder, 2014-12-17 15:56:58

Existem algumas configurações de compiladores cruzados, mas quase todas são feitas para compilação distribuída ao estilo distcc. Tanto quanto sei, não há forma de atingir directamente a plataforma Mac sem ter um Mac. O mais próximo que você pode chegar sem recorrer ao QT ou wxWidgets é OpenStep com GNUStep ou similar, mas isso não é uma verdadeira plataforma de cacau, apenas muito perto.

 -2
Author: greyfade, 2009-03-29 06:16:18
A resposta curta é mais ou menos. Terá de usar uma biblioteca multi-plataforma como QT . Há IDE's like QT Creator que irá permitir que você se desenvolva em um SO e gerar Makefiles para outros. Para mais informações sobre o desenvolvimento da plataforma cruzada, confira os episódios de plataforma cruzada de este podcast (note que a série não terminou e novos episódios parecem sair semanalmente).

Como outras respostas explicam, você pode provavelmente compilar para um Mac no Windows ou Linux, mas você não será capaz de testar suas aplicações, então você provavelmente deve gastar os $600 para um Mac Se você está fazendo programação profissional, ou se você está trabalhando em software de código aberto encontrar um desenvolvedor com um Mac que irá ajudá-lo.

 -5
Author: Jared, 2011-10-06 22:09:18