2013-06-29 23 views
18

Io uso Ubuntu 12.04 e il gcc predefinito è 4.6.3. Non accetta i comandi di C++ 11 e mi sta dando l'output dicendo che il comando non è compatibile con C++ 98. Ho controllato online e ho visto persone che consigliavano di non modificare i compilatori predefiniti sul sistema operativo quando diventa instabile. Qualcuno può suggerire una soluzione o un modo sicuro per scaricare un compilatore gcc conforme a C++ 11.come cambiare il compilatore gcc in C++ 11 su ubuntu

+8

'g ++ -std = C++ 11' o, se ciò non lo fa lavoro, 'g ++ -std = C++ 0x' – jxh

+2

È sempre possibile installare un'altra versione di GCC accanto a quella di sistema. Puoi anche compilare un'altra versione da solo. Ci sono molti tutorial in rete - usa il tuo motore di ricerca preferito. GCC di solito ha suffisso i suoi eseguibili con il numero di versione e installa anche le sue librerie specifiche in directory con versione così le versioni più recenti non entreranno in conflitto con quella fornita dal sistema. –

risposta

15

gcc 4.6.3 supports many c++11 features. Tuttavia, sono disabilitati per impostazione predefinita. Per consentire loro, utilizzare il seguente bandiera:

g++ -std=c++0x ... 

Questo flag disabilita anche estensioni GNU; per mantenerli abilitati, utilizzare il flag .

+0

quindi ho bisogno di inserire il comando per la compilazione come g ++ -o eseguibile nomefile.cc -std = C++ 0x è? –

+1

@talasila corretto. Potresti prendere in considerazione l'aggiornamento di gcc a 4.8, [ha molto meglio il supporto per C++ 11] (http://gcc.gnu.org/gcc-4.8/cxx0x_status.html). – dasblinkenlight

+0

come faccio ad aggiornare il mio compilatore predefinito a uno nuovo. perché la gente dice di non rimuovere una versione esistente di gcc nel sistema operativo in quanto rende il sistema instabile? È vero? –

21

Come altri hanno suggerito, è necessario immettere l'opzione della riga di comando std. Facciamo più facile per voi

  1. Aprire terminale premendo Ctrl + Alt + T
  2. sudo gedit ~/.bashrc
  3. Immettere la seguente riga come l'ultima linea

    alias g++="g++ --std=c++0x" 
    
  4. Salvare e chiudere il file e chiudere il terminale.
  5. terminale Ora di nuovo aperto e compilare il C++ 11 programmi semplicemente g++ filename.cpp

questo è tutto. Di default verrà compilato per lo standard C++ 11.

NOTA: Se si segue l'opzione di cui sopra, per compilare i non c-++ 11 programmi, è necessario utilizzare

g++ --std=c++98 filename.cpp 
+0

ok. Grazie. Ma nell'ultima nota hai detto che per compilare programmi non C++ 11 cambia il comando. Ma non tutte le versioni sono compatibili con le versioni precedenti. Quindi il compilatore C++ 11 dovrebbe compilare anche un programma senza comandi specifici per C++ 11. –

Problemi correlati