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?
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).
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
O Radstudio da Embarcadero também suporta a construção Aplicativos OSX/iOS / Android no Windows.
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.
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.
- Get " VMware Player"
- Obter " imagem Mac OS X vm"
- 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:- eu faço uma mudança no OS 1
- reiniciar para OS 2 Esquece alguma coisa no OS 1.
- reiniciar para OS 1
- Faça uma alteração no OS 1
- reiniciar para OS 2 ... outra vez ...
Lá se vão 30 minutos do meu tempo e eu não fiz nada produtivo.
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.
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.
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+).
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.
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.