Qual seria a melhor maneira de escrever Objective-C na plataforma Windows?
Cygwin e gcc? Existe uma maneira de integrar isso de alguma forma no Visual Studio?
Nesse sentido - existem sugestões sobre como vincular e usar o Windows SDK para algo assim. É uma fera diferente, mas sei que posso escrever assembly e link nas DLLs do Windows, dando-me acessibilidade a essas chamadas, mas não sei como fazer isso sem pesquisar no Google e obter instruções fragmentadas.
Alguém está ciente de um bom recurso on-line ou de livro para fazer ou explicar esse tipo de coisa?
Respostas:
Expandindo as duas respostas anteriores, se você quiser apenas o Objective-C, mas não nenhuma das estruturas do Cocoa, o gcc funcionará em qualquer plataforma. Você pode usá-lo através do Cygwin ou obter o MinGW. No entanto, se você deseja as estruturas Cocoa, ou pelo menos um subconjunto razoável delas, o GNUStep e o Cocotron são suas melhores apostas.
O Cocotron implementa muitas coisas que o GNUStep não faz, como CoreGraphics e CoreData, embora eu não possa garantir como a implementação deles é completa em uma estrutura específica. Seu objetivo é manter o Cocotron atualizado com a versão mais recente do OS X, para que qualquer programa viável do OS X possa ser executado no Windows. Como o GNUStep geralmente usa a versão mais recente do gcc, eles também adicionam suporte ao Objective-C ++ e muitos dos recursos do Objective-C 2.0.
Não testei esses recursos com o GNUStep, mas se você usar uma versão suficientemente nova do gcc, poderá usá-los. Não consegui usar o Objective-C ++ com o GNUStep há alguns anos atrás. No entanto, o GNUStep compila a partir de praticamente qualquer plataforma. Cocotron é um projeto muito centralizado em mac. Embora provavelmente seja possível compilá-lo em outras plataformas, ele vem com arquivos de projeto XCode, não makefiles, portanto você só pode compilar suas estruturas prontas para uso no OS X. Ele também vem com instruções sobre a compilação de aplicativos do Windows no XCode, mas não qualquer outra plataforma. Basicamente, provavelmente é possível configurar um ambiente de desenvolvimento do Windows para o Cocotron, mas não é tão fácil quanto configurar um para o GNUStep, e você estará por conta própria, portanto o GNUStep é definitivamente o caminho a seguir, se você estiver desenvolvendo no Windows em vez de apenas para Windows.
Pelo que vale, a Cocotron é licenciada sob a licença MIT e o GNUStep é licenciado sob a LGPL.
fonte
Você pode usar o Objetivo C dentro do ambiente do Windows. Se você seguir estas etapas, deve estar funcionando bem:
GNUstep MSYS Subsystem
(MSYS para GNUstep),GNUstep Core
(Bibliotecas para GNUstep) eGNUstep Devel
C:\GNUstep\GNUstep\System\Library\Headers\Foundation
1 e verifique seFoundation.h
existegcc -v
para verificar seGNUstep MSYS
está instalado corretamente (se você receber um erro de arquivo não encontrado, verifique se abin
pastaGNUstep MSYS
está na suaPATH
)Use este simples programa "Hello World" para testar a funcionalidade do GNUstep:
Volte para o prompt de comando e
cd
para onde você salvou o programa "Hello World" e compile-o: 2Finalmente, no prompt de comando, digite
helloworld
para executá-loTudo de bom e divirta-se com o Objective-C!
NOTAS :
fonte
gcc -o helloworld...
parac:\gnustep\bin\gcc -o helloworld...
e funcionou. A alternativa seria modificar as variáveis de ambiente, o que eu não fiz desde que estava apenas vendo o objetivo C. Obrigado ao teshguru pela resposta direta.Além disso:
http://www.cocotron.org/
fonte
WinObjC? Windows Bridge para iOS (anteriormente conhecido como 'Project Islandwood').
O Windows Bridge para iOS (também conhecido como WinObjC) é um projeto de código aberto da Microsoft que fornece um ambiente de desenvolvimento Objective-C para o Visual Studio / Windows. Além disso, o WinObjC fornece suporte à compatibilidade da API do iOS. Embora a versão final ocorra ainda este outono (permitindo que a ponte aproveite os novos recursos de ferramentas que serão lançados com a próxima atualização do Visual Studio 2015),
A ponte está disponível para a comunidade de código aberto agora em seu estado atual. Entre agora e o outono. A ponte do iOS como um projeto de código aberto sob a licença MIT. Dada a ambição do projeto, tornando fácil para os desenvolvedores do iOS criar e executar aplicativos no Windows.
Salmaan Ahmed tem uma postagem detalhada no Windows Bridge para iOS http://blogs.windows.com/buildingapps/2015/08/06/windows-bridge-for-ios-lets-open-this-up/ discutindo o compilador, tempo de execução, integração IDE e o que a ponte é e não é. O melhor de tudo é que o código fonte da ponte para iOS está ativo no GitHub agora.
A ponte iOS suporta os aplicativos Windows 8.1 e Windows 10 criados para arquiteturas de processadores x86 e x64, e em breve adicionaremos otimizações do compilador e suporte ao ARM, que adiciona suporte móvel.
fonte
Eu tenho sentimentos contraditórios sobre o projeto Cocotron. Estou feliz por eles estarem liberando código-fonte e compartilhando, mas não sinto que eles estejam fazendo as coisas da maneira mais fácil.
Exemplos.
A Apple lançou o código-fonte no tempo de execução do objetivo-c , que inclui propriedades e coleta de lixo. O projeto Cocotron, no entanto, possui sua própria implementação do tempo de execução do objetivo-c. Por que se preocupar em duplicar o esforço? Existe até um arquivo de projeto do Visual Studio que pode ser usado para criar um arquivo objc.dll. Ou, se você é realmente preguiçoso, basta copiar o arquivo DLL de uma instalação do Safari no Windows.
Eles também não se deram ao trabalho de alavancar o CoreFoundation, que também é de código aberto da Apple. Eu postei uma pergunta sobre isso, mas não recebi uma resposta.
Eu acho que a melhor solução atual é pegar o código fonte de várias fontes (Apple, CocoTron, GnuStep) e juntá-lo ao que você precisa. Você terá que ler muita fonte, mas valerá o resultado final.
fonte
Estou ciente de que esta é uma publicação muito antiga, mas encontrei uma solução que só ficou disponível mais recentemente E habilita quase todos os recursos do Objective-C 2.0 na plataforma Windows.
Com o advento do gcc 4.6, o suporte aos recursos da linguagem Objective-C 2.0 (blocos, sintaxe de pontos, propriedades sintetizadas etc.) foi adicionado ao compilador Objective-C (consulte as notas de versão para obter detalhes completos). Seu tempo de execução também foi atualizado para funcionar quase de forma idêntica ao tempo de execução Objective-C 2.0 da Apple. Em resumo, isso significa que (quase) qualquer programa que legitimamente seja compilado com o Clang em um Mac também será compilado com o gcc 4.6 sem modificação.
Como uma observação lateral, um recurso que não está disponível é o literal dictionary / array / etc, pois todos são codificados no Clang para usar as classes NSDictionary, NSArray, NSNumber, etc da Apple.
No entanto, se você gosta de viver sem os extensos quadros da Apple, pode. Conforme observado em outras respostas, o GNUStep e o Cocotron fornecem versões modificadas das bibliotecas de classes da Apple ou você pode escrever suas próprias (minha opção preferida).
O MinGW é uma maneira de obter o GCC 4.6 na plataforma Windows e pode ser baixado no site The MinGW . Certifique-se de que ao instalá-lo inclua a instalação de C, C ++, Objective-C e Objective-C ++. Embora opcional, eu também sugeriria a instalação do ambiente MSYS.
Uma vez instalado, a fonte do Objective-C 2.0 pode ser compilada com:
gcc MyFile.m -lobjc -std=c99 -fobjc-exceptions -fconstant-string-class=clsname (etc, additional flags, see documentation)
O MinGW também inclui suporte para compilar aplicativos nativos da GUI do Windows com o
-mwindows
sinalizador. Por exemplo:g++ -mwindows MyFile.cpp
Ainda não tentei, mas imagino que, se você agrupar suas classes de Objective-C no Objective-C ++ na camada mais alta possível, conseguirá entrelaçar com êxito a GUI nativa do Windows C ++ e Objective-C nativas, tudo em um Aplicativo do Windows.
fonte
Confira o WinObjC :
https://github.com/Microsoft/WinObjC
É um projeto oficial de código aberto da Microsoft que se integra ao Visual Studio + Windows.
fonte
Se você quiser experimentar, há um compilador Objective-C para .NET (Windows) aqui: qckapp
fonte
Você pode obter um compilador c objetivo que funcionará com o Windows e funcionará bem com o Visual Studio 2008 \ 2010 aqui.
open-c flite
Basta baixar a fonte mais recente. Você não precisa criar todo o CF-Lite; existe uma solução chamada objc.sln. Você precisará corrigir alguns dos caminhos de inclusão, mas depois ele será compilado. Existe até um projeto de teste incluído para que você possa ver alguns arquivos de objetivo-c .m sendo compilados e trabalhando no visual studio. Uma coisa triste é que ele só funciona com o Win32 e não com o x64. Há algum código de montagem que precisaria ser escrito para x64 para suportar isso.
fonte
Uma tentativa recente de portar o Objetivo C 2.0 para o Windows é o projeto Subjetivo .
No Leiame:
O projeto está disponível no Github e também há um tópico no Grupo Cocotron descrevendo alguns dos progressos e problemas encontrados.
fonte
Obtenha o GNUStep aqui
Obtenha o MINGW aqui
Instale o MINGW Instale o GNUStep e teste
fonte
Se você se sentir confortável com o ambiente do Visual Studio,
Projeto pequeno: jGRASP with gcc Projeto grande: Cocotron
Ouvi dizer que existem emuladores, mas só consegui encontrar o Emulador Apple II http://virtualapple.org/ . Parece limitado a jogos.
fonte
Antes de tudo, esqueça as ferramentas GNUStep . Nem o ProjectManager nem o ProjectCenter podem ser chamados de IDE. Com todo o respeito, parece que os caras do projeto GNUStep estão presos no final dos anos 80 (quando o NeXTSTEP apareceu pela primeira vez).
Vim
ctags
ofereça suporte ao Objective-C desde r771 (certifique-se de escolher a versão pré-lançamento 5.9 e adicioná--langmap=ObjectiveC:.m.h
-la à linha de comando, veja aqui ), para que você tenha uma conclusão decente do código / navegação por tags.Aqui está um pequeno tutorial sobre como adicionar suporte ao Objective-C ao plug-in da barra de tags do Vim.
Emacs
O mesmo se aplica às
etags
versões modernas do Emacsen, para que você possa começar com o Emacs Objective C Mode . O YASnippet fornecerá modelos úteis:e se você quiser algo mais inteligente do que a conclusão básica de código baseada em tags , dê uma olhada nesta pergunta .
Eclipse
O CDT suporta
Makefile
projetos baseados em:- para que tecnicamente você possa criar seus projetos Objective-C imediatamente (no Windows, você precisará da cadeia de ferramentas Cygwin ou MinGW ). O único problema é o editor de código, que relatará muitos erros contra o que considera um código C puro (a verificação de código em tempo real pode ser desativada, mas ainda assim ...). Se você deseja destacar a sintaxe adequada, é possível adicionar o Eclim ao seu Eclipse e aproveitar todos os bons recursos do Eclipse e do Vim (veja acima).
Outro plugin promissor do Eclipse é o Colorer , mas ainda não suporta Objective-C. Sinta-se livre para registrar uma solicitação de recurso.
SlickEdit
SlickEdit , entre outras características de uma grande IDE, faz suporte Objective-C. Embora seja bastante complexo aprender (não tão complexo quanto o Emacs), acredito que esta é sua melhor opção, desde que você não se importe em comprá-lo (o preço é bastante acessível).
Além disso, ele possui um plug-in do Eclipse, que pode ser usado como uma alternativa ao editor independente.
KDevelop
Há rumores de que existe um patch do KDevelop (15 anos, mas quem se importa?). Pessoalmente, não acho que o KDevelop seja superior ao Emacsen , por isso não me incomodaria em tentar.
O exposto acima também se aplica ao desenvolvimento de Objective-C no Linux, pois todas as ferramentas mencionadas são mais ou menos portáteis.
fonte