2012-11-09 14 views
5

Sia LLVM che GCC supportano Objective-C e mi piace la lingua. Quindi, sarei interessato a indirizzare il codice nativo WinRT usando LLVM o GCC, probabilmente usando MinGW.Targeting di WinRT tramite LLVM o GCC

Mentre la domanda a cui sono interessato dovrebbe essere facilmente consultabile, non sono riuscito a trovare alcuna informazione saliente: il supporto LLVM o GCC è indirizzato a WinRT?


Intel ha un articolo su using Intel C++ Compiler 13.0 with Visual Studio 2012 che può contenere suggerimenti utili.

Inoltre, a near duplicate question.

+0

WinRT potrebbe essere troppo recente per consentire a qualcuno di eseguire il porting di GCC o LLVM. Se conosci bene WinRT, potresti provare te stesso (probabilmente partendo da una cosa esistente). Quindi, si prega di pubblicare la patch con la licenza appropriata del software libero. –

+0

Probabilmente sarà impossibile farlo senza l'aiuto della SM. WinRT è bloccato. –

+0

[La pagina Intel sopra] (https://software.intel.com/en-us/articles/experimenting-with-intel-c-compiler-130-and-windows-8-store-apps) sta semplicemente discutendo il compilatore Intel C/C++ per collaborare alla creazione di un'app x86 per Windows Store, ad esempio per il set basato su x86-ISA {Surface Pro, Surface Pro 2, desktop, laptop, ...}. [La pagina Intel sopra] (https://software.intel.com/en-us/articles/experimenting-with-intel-c-compiler-130-and-windows-8-store-apps) non dice nulla sul compilatore di Intel compilazione incrociata con ISA del concorrente (ovvero ARM). – optikos

risposta

2

Clang ora ha il pieno supporto per C nativo e C++ su Windows, con l'ABI nativo, ecc. Se c'è un'API C o C++ per WinRT, dovresti essere in grado di chiamarlo con il codice compilato usando Clang su Windows.

Questo non direttamente collega ObjC a WinRT, ma potresti potenzialmente scrivere codice per creare tale connessione, se lo desideri.

0

Per il momento, sei bloccato con MSVC. Anche se non è impossibile accedere all'API stessa (è fondamentalmente COM con alcuni campanelli e fischietti), non sarebbe molto divertente interfacciarlo con Objective-C senza saltare attraverso alcuni hook.

Un problema che vedo inizialmente sarebbe il fatto che l'Objective C non supporta gli spazi dei nomi e l'utilizzo dell'API WinRT dall'interno dell'obiettivo C probabilmente non sarebbe molto divertente. Il PPL è disponibile per C++ e C# non c'è la parola await ma utilizzando tutte queste ...Async metodi in Objective-C ... probabilmente non vuole che;)

+0

In teoria, il namespace può essere emulato tramite l'uso di namespace implementato come classe (una 'classe spazio dei nomi') che contiene ulteriori classi di namespace e classi effettive, ecc .;-) D'altra parte, ciò che mi interessa è semplicemente in grado di compilare qualsiasi cosa - in pratica, basta aprire una schermata di Metro UI con un solo pulsante - da C usando MinGW. Se posso usare C da MinGW, posso scrivere un wrapper per il mio gioco che utilizza Objective-C ;-) –

+0

Anche il compilatore e il linker dovrebbero supportare i file .winmd, quindi non penso che questo sia qualcosa che ci si può aspettare in qualsiasi momento presto. –

+0

Sembra che molti file .winmd siano semplici vecchi file .dll PE - http://www.codeproject.com/Articles/476957/WINMDplusFilesplusUnderplustheplusHood anche se a volte contengono solo descrizioni di classi/riferimenti: http://mariusbancila.ro/blog/2011/10/30/winrt-and-winmd-files/Forse possiamo evitarlo caricando dinamicamente il .winmd e usando COM per istanziare gli oggetti? –

Problemi correlati