У меня проблема с Eclipse Oxygen, когда Eclipse не может найти ничего в стандартной библиотеке:
Это фрагмент кода, который у меня есть:
#include <iostream>
#include <asio.hpp>
#include <memory>
....
typedef asio::io_service service;
typedef std::shared_ptr<service> servicePtr;
Shared_ptr выделяется с ошибкой, говорящей, что «символ shared_ptr» не может быть разрешен ». Я получаю эту ошибку на любом объекте, который использует пространство имен std ::.
Например, если у меня есть
#include <atomic>
....
std::atomic<bool> myBool;
Та же ошибка, что и раньше, но Eclipse не может найти атомарный символ
Однако у включений нет такой ошибки, говорящей, что заголовок не может быть найден.
Это начало происходить, когда мне нужно было использовать C ++ 11 с использованием g ++ из другого каталога (/ opt / dev / usr / bin / g ++), который —version — это g ++ (GCC) 5.3.1 20160406
Я установил этот путь как команду как мой компилятор GCC C ++ в моем Project-> Properties-> C / C ++ Build-> Settings-> Tool Settings.
Я также добавил каталог / opt / dev / usr / include в пути к моей библиотеке и экспортировал его.
Во включаемых файлах также есть мой / usr / include / usr / local / include, который, я думаю, может испортить индексатор, но я не знаю, как сказать Eclipse игнорировать эти пути.
Я не уверен, что мне нужно сделать, чтобы Eclipse снова распознал любую из стандартных библиотек …
Задача ещё не решена.
Других решений пока нет …