2012-11-09 16 views
5

Hem LLVM hem de GCC, Objective-C'yi destekliyor ve dili beğeniyorum. Bu nedenle, muhtemelen MinGW kullanarak LLVM veya GCC kullanarak WinRT yerel kodunu hedeflemekle ilgilenirim.LLVM veya GCC yoluyla WinRT'yi Hedefleme

İlgilendiğim soru kolayca yönlendirilebilir olsa da, dikkat çekici bir bilgi bulamadım: LLVM veya GCC, WinRT'yi hedeflemeyi destekliyor mu?


Intel yararlı ipuçları içerebilir using Intel C++ Compiler 13.0 with Visual Studio 2012 bir makale.

Ayrıca, bir near duplicate question.

+0

WinRT, birisinin GCC veya LLVM'yi ona taşıdığı için çok yeni olabilir. WinRT'yi çok iyi tanıyorsanız, kendinizi deneyebilirsiniz (muhtemelen mevcut bir şeyden başlayarak). O zaman lütfen yamaunuzu uygun ücretsiz yazılım lisansı altında yayınlayın. –

+0

MS'den yardım almadan bunu yapmak imkansızdır. WinRT kilitlendi. –

+0

[Yukarıdaki Intel sayfası] (https://software.intel.com/en-us/articles/experimenting-with-intel-c-compiler-130-and-windows-8-store-apps) yalnızca tartışılıyor Intel C/C++ derleyicisi, x86-ISA tabanlı küme {Surface Pro, Surface Pro 2, masaüstü bilgisayarlar, dizüstü bilgisayarlar,…} gibi Windows Mağazası için bir x86 uygulaması oluşturmada işbirliği yapar. [Yukarıdaki Intel sayfası] (https://software.intel.com/en-us/articles/experimenting-with-intel-c-compiler-130-and-windows-8-store-apps) Intel'in derleyicisi hakkında hiçbir şey söylemiyor Rakibin (yani, ARM) ISA'ya çapraz derleme. – optikos

cevap

2

Clang şimdi yerel C ve üzerinde C++ için tam desteği vardır Windows, yerel ABI vb. Ile birlikte WinRT için bir C veya C++ API'si varsa, Windows'da Clang kullanarak derlenmiş kodla bunu kolayca aramanız gerekir.

WinRT değil doğrudan bağlantı objc yapar, ancak potansiyel olarak eğer istediğini böyle bir bağlantı kurmak için kod yazmak olamayacağını.

0

Şu an için MSVC ile takıldınız. API'ye erişmek imkansız olmasa da (temelde bazı çan ve ıslıklarla COM), bazı kancalardan geçmeden Objective-C ile arayüz yapmak çok eğlenceli olmaz.

Öncelikle, Objective C'nin ad alanlarını desteklememesi ve ObjectR C'den WinRT API'sini kullanmaması, büyük olasılıkla çok eğlenceli olmaz. PPL orada await kelime ama Objective-C tüm bu ...Async yöntemleri kullanarak C++ ve C# mevcuttur ... muhtemelen bunu istemiyoruz;)

+0

Ad alanı, teoride, ad alanı sınıflarının yanı sıra gerçek sınıflar, vb. Içeren bir sınıf (bir 'ad alanı sınıfı') olarak uygulanan ad alanına sahip olarak öykünebilir .; Diğer taraftan, neye ilgi duyuyorum sadece bir şey derlemek mümkün - temelde, sadece tek bir düğme ile bir Metro UI ekran açılması - MinGW kullanarak C'den. MinGW'dan C'yi kullanabilirsem, Objective-C ;-) –

+0

'u kullanan benim oyunum için bir sarıcı yazabilirim. Ayrıca derleyici ve linker .winmd dosyalarını desteklemeli, bu yüzden beklediğiniz bir şey olduğunu düşünmüyorum yakın zamanda. –

+0

Birçok gibi görünüyor .winmd dosyaları düz eski PE .dlls - http://www.codeproject.com/Articles/476957/WINMDplusFilesplusUnderplustheplusHood bazen sadece sınıf açıklamaları/referansları içeriyor olsa da: http://mariusbancila.ro/blog/2011/10/30/winrt-and-winmd-files/Belki de .winmd'yi dinamik olarak yükleyerek ve nesneler oluşturmak için COM kullanarak bunu önleyebiliriz? –