Eclipse C ++ su Ubuntu 14.04 non trova la stringa stod ()

Elipse non può creare programmi C ++ sul mio sistema se contengono chiamate alla funzione di stringa stod (). Sto usando Ubuntu 14.04 con Eclipse usando la prospettiva C / C ++.

Ho incluso l’intestazione e compilato con il flag di compilazione -std = c ++ 11 e impostato il compilatore da gcc a g ++, ma non ha funzionato. Ho anche provato ad usare l’impostazione dialetto “ISO C ++ 11” di Eclipse (che imposta il flag di compilazione su -std = c ++ 0x.In tutti i casi, il compilatore non è in grado di vedere la funzione stod.

Per isolare il problema, ho compilato l’esempio dal sito web cplusplus.com per stod:

// stod example #include  // std::cout #include  // std::string, std::stod int main () { std::string orbits ("365.24 29.53"); std::string::size_type sz; // alias of size_t double earth = std::stod (orbits,&sz); double moon = std::stod (orbits.substr(sz)); std::cout << "The moon completes " << (earth/moon) << " orbits per Earth year.\n"; return 0; } 

Questo non riesce a compilare, con l’errore “Imansible fermare la funzione”. Se rimuovo quelle chiamate, e inizializzo la terra a 0.0, e la luna a 1.0, si compila e funziona bene (con la risposta sbagliata ovviamente).

Ho provato a compilare lo stesso programma dalla riga di comando di Ubuntu e funziona quando includo il flag di compilazione -std = c ++ 11.

     > g++ -o teststod teststod.cpp -std=c++11 > teststod The moon completes 12.3684 orbits per Earth year. 

    Il mio Linux è aggiornato, e ho fatto un aggiornamento apt-get per essere sicuro. Un ansible indizio, ho originariamente installato Eclipse con il solo target Java, ma ho creato questi progetti in Eclipse come progetti C ++ con prospettive C / C ++.

    Per riferimento, ecco cosa restituisce la pagina Informazioni su Eclipse:

     IDE for Java Developers Version: Mars.1 Release (4.5.1) Build id: 20150924-1200 Ubuntu version: Distributor ID: Ubuntu Description: Ubuntu 14.04.5 LTS Release: 14.04 Codename: trusty 

    Dopo aver fatto un passo indietro, ho deciso di reinstallare tutto. Dopo aver esaminato un video di youTube sulla configurazione di Eclipse C su Windows , mi sono reso conto che l’installazione di Eclipse per supportare C richiedeva questi passaggi:

    • Download di Java JDK da java.oracle.com (fatto)
    • Download di Eclipse (fatto)
    • Download di un ambiente di compilazione C / C ++ (non fatto!)
    • Download del pacchetto Eclipse CDT (non completato)

    Come molte persone, ho pensato che potevo semplicemente scaricare Eclipse per C / C ++ e farlo funzionare fuori dalla scatola, ma non potevo creare nessuno dei tutorial come helloWorld. Avevo bisogno di scaricare il toolchain del compilatore separatamente.

    Ho scaricato e installato Cygwin e il pacchetto CDT di Eclipse, ma ho ancora ricevuto degli errori perché Eclipse non è riuscito a trovare gli header di file standard inclusi, né il programma make.

    Questo post parla dell’impostazione del PATH . Ho dovuto impostare la variabile PATH dell’ambiente di progetto in Window->Preferences->C/C++->Build->Environment e aggiunto il percorso C:\cygwin64\bin alla variabile PATH .

    Sotto Project Properties, ho dovuto andare a Tool Chain Editor trova in C/C++ Build e impostare Current Toolchain su CygWin GCC e Current builder su CDT Internal Builder base a questo post .

    E poiché stavo partendo da zero, dovevo tornare indietro e impostare -std=c++0x per il progetto in Properties->C/C++ Build->Settings->Dialect' and choose ISO C ++ 11 (-std = c ++ 0x) under Language Standard`.

    Il progetto è stato quindi realizzato correttamente e eseguito correttamente. Grazie a tutti su StackEchange che ti ha aiutato con i tuoi vari post.