IS C ++ un linguaggio multipiattaforma? [chiuso]

3

Se creo un gioco in C ++ su un Mac usando una libreria che è la stessa sia per windows che per osx, il gioco sarà riproducibile sia su windows che su os x o funzionerà solo in os x perché l'ho fatto in Xcode?

SDL è un'ottima libreria per fare il tuo primo gioco dopo aver imparato le basi e la sintassi del C ++ (ho trovato la sintassi vicina a Java)?

    
posta user3473184 29.07.2014 - 13:39
fonte

5 risposte

6

Sì, C ++ è un linguaggio multipiattaforma nel senso che esistono compilatori per molte piattaforme.

Non tutte le funzionalità / versioni / librerie sono implementate in ogni compilatore o disponibili su tutte le piattaforme, quindi in questo senso: No, il C ++ non è un linguaggio multipiattaforma.

Ora per la tua domanda implicita: "Posso sviluppare un gioco con SDL per la grafica e l'astrazione del suono su Mac OS X e compilare il gioco per Windows?"

Sì, questo è infatti possibile, a patto che tu stia rispettando un sottoinsieme definito di funzioni e librerie disponibili su entrambe le piattaforme. Usando MXE , puoi compilare la tua versione di Windows su Linux / BSD / Mac OS X per Windows e MXE include SDL.

    
risposta data 29.07.2014 - 13:58
fonte
4

C ++ è un linguaggio multipiattaforma nel senso che il codice sorgente può essere compilato con successo per piattaforme multiple e distinte. I binari che crei non sono generalmente portabili tra le piattaforme.

Quando scegli come target più piattaforme, devi stare attento a stare lontano dal codice specifico della piattaforma e del compilatore. Inoltre, tutte le librerie di terze parti che utilizzi dovrebbero essere documentate per supportare tutti i target pertinenti.

    
risposta data 29.07.2014 - 14:01
fonte
1

Se rimani lontano dalle operazioni di basso livello (cioè specifiche della piattaforma) e dalle chiamate di sistema specifiche della piattaforma (cioè chiamate solo funzioni lib nella tua lib multipiattaforma) dovresti stare bene. Potrebbero esserci alcuni problemi minori del compilatore che richiedono di modificare un po 'di sintassi qua e là (il codice di porting è raramente una questione di copia e ricompilazione, di solito ci sono una o due piccole rughe da appianare) ma dovrebbe essere banale.

    
risposta data 29.07.2014 - 13:56
fonte
1

Sì. C ++ è un linguaggio di programmazione multipiattaforma. È possibile compilare codice C ++ in molte piattaforme, esistono compilatori per la maggior parte delle piattaforme. Detto questo, il codice che scrivi dovrebbe essere multipiattaforma, dovresti tenerti lontano dalle funzionalità dipendenti dalla piattaforma, se vuoi che il tuo codice sia indipendente dalla piattaforma. Ad esempio, non dovresti usare COM se vuoi essere in grado di compilare il tuo codice su MAC o Linux. E in caso contrario, C ++ e le librerie come STL, boost sono disponibili da qualsiasi piattaforma.

    
risposta data 29.07.2014 - 14:37
fonte
0

Non penso davvero che il C ++ sia "multipiattaforma" perché devi compilare una versione diversa per ogni piattaforma. Certo, c'è un compilatore per ogni piattaforma, ma ciò non significa che sia così semplice come "il codice di porta quindi premere il pulsante di compilazione". Non è neanche lontanamente così semplice.

Se vuoi fare la programmazione di giochi indie, probabilmente non vuoi reinventare la ruota: ci sono già motori di fisica delle licenze gratuiti basati su motori di gioco basati su renderizzatori grafici. Perché provare a costruire tutto da solo?

Raccomando JMonkeyEngine. Non penso che sia necessario C ++ o DirectX per realizzare giochi di grafica veloce a meno che non si stia provando per giochi all'avanguardia come Skyrim; e anche allora potresti continuare a fare la maggior parte del lavoro in Java e aggiungere patch da altre lingue.

EDIT: Inoltre, se comprendi "le basi e la sintassi di C ++" questo non è un'indicazione che capisci C ++ e capisci Java. C ++ ha un gran numero di sfumature ad esso. Ad esempio, se dichiari e assegni una variabile su una riga rispetto a due linee, ciò potrebbe cambiare se viene chiamato un operatore di assegnazione sovraccarico rispetto a un costruttore di copia. Per questo motivo, i programmatori C ++ di solito hanno bisogno di sapere molto di più sulla lingua rispetto ai programmatori Java per programmare in modo sicuro nella lingua.

Niente di tutto ciò è ridimensionare il C ++, ma è necessario sapere cosa aspettarsi se si vuole usarlo. Inoltre, se usi DirectX invece di OpenGL e se vuoi farlo da solo senza usare un motore di rendering con licenza aperta, allora dio ti aiuterà.

    
risposta data 29.07.2014 - 14:34
fonte

Leggi altre domande sui tag