2014-12-25 27 views
10

Attualmente ho un progetto C++ con un makefile personalizzato. Dico a Eclipse di chiamare semplicemente make e il makefile gestisce tutto. Il progetto si sviluppa bene ma eclipse continua a evidenziare le catture lambda generalizzate come "errori di sintassi". Per quanto ho capito da questa:Eclipse Luna Indexer per C++ 14 con makefile personalizzato

https://stackoverflow.com/a/835019/4076418,

si tratta di un problema con il CDT indicizzatore non capire la sintassi C++ 14.

Ho provato seguendo le risposte qui:

Eclipse CDT C++11/C++0x support

https://stackoverflow.com/a/13635080/4076418

ma non gestiscono il mio caso, che è Eclipse Luna + un progetto makefile personalizzato + C++ 14.

Questa domanda è probabilmente legato alla mia, ma che non ha risposta [anche io non ho la possibilità di modificare l'indicizzatore]:

https://stackoverflow.com/q/24950192/4076418

Tutte le idee su come ottenere l'indicizzatore di riconoscere Funzionalità di C++ 14?

P.S. Le funzioni di C++ 11 non sono evidenziate come errori di sintassi per qualche motivo. Dovrei anche notare che sto usando clang 3.4.2 nel makefile; ovviamente, supporta il C++ 14. La versione g ++ disponibile però è 4.4.7 quindi non supporta C++ 14. Questo potrebbe essere il problema in qualche modo? Che il CDT usi il g ++ del sistema per l'indicizzatore? E se sì, come posso cambiarlo senza dover aggiornare g ++ (sto lavorando con privilegi di utente limitati e l'aggiornamento sarebbe un problema)?

+0

Grande. Ho incasinato ancora di più la mia configurazione. Utilizzato per riconoscere le funzionalità di C++ 11. Ora mette in evidenza anche cose come std :: vector. Mi arrendo ... – elatalhm

+0

Hai provato ad aggiungere '-std = C++ 14' ai flag del compilatore in Eclipse? – user2205930

risposta

0

AFAIK Eclipse Luna non supporta C++ 14 in generale. Probabilmente dovrai aggiornare a Eclipse Neon. Io uso il neon, il parser funziona, non uso il makefile personalizzato però

Ho usato Luna in passato, ma anche il supporto per C++ 11 a volte era difficile da configurare.