Я работаю на ОС CentOS 6.5 x64 и использовал yum для установки armadillo. Я развиваюсь в Eclipse CDT
Я включил заголовок armadillo в свойствах проекта >> C/C++ Build >> Настройки >> GCC C++ Компилятор >> Включает >> Включить файлы. Запись: "/usr/include/armadillo"
Файл заголовка, над которым я работаю, распознает armadillo, и оператор include не помечен для каких-либо ошибок или предупреждений.
Ниже приведен код:
#include <armadillo>
using namespace std;
using namespace arma; // arma is not recognized as a symbol
const double DEGREES_PER_RADIAN = 180.0 / datum::pi; // datum is not recognized
Я проверил файл /usr/include/armadillo
и он включил раздел arms пространства имен.
//! \namespace arma namespace for Armadillo classes and functions
namespace arma
{
// preliminaries
...
Я также проверил разрешения, и файл /usr/include/armadillo
читается всем пользователям.
Проблема заключается в том, что когда я добавляю "использование пространства имен arma", CDT отмечает это как ошибку и говорит, что "Символ" arma "не может быть разрешен".
На данный момент у меня нет других идей, чтобы понять, почему пространство имен не распознается. Любые идеи или указатели, чтобы понять это, будут высоко оценены.
Ответ на этот вопрос дал ответ на мой вопрос: " Чистый индекс Eclipse", он не синхронизирован с кодом
Джош Келли ответил на связанный вопрос:
Щелкните правой кнопкой мыши на своем проекте, перейдите в подменю "Индекс" и выберите "Перестроить", "Обновить с измененными файлами" или "Освежить все файлы".
Я не знаю разницы между этими тремя параметрами, но один из "Обновление с измененными файлами" или "Освежить все файлы" обычно исправляет его для меня.
Кроме того, я уверен, что вы уже это сделали, но убедитесь, что вы используете последнюю версию Eclipse CDT. Текущие версии, похоже, имеют гораздо более надежную индексацию, чем предыдущие версии.
После запуска Index >> Rebuild and Index >> Freshen All Files, ошибки исчезли.