"Не удается разрешить..." в NetBeans 6.7.1, Linux, C++

Я работаю с небольшой группой над проектом C++ в NetBeans.

По какой-то причине NetBeans сообщает о таких вещах, как "string", "endl", "cout", как "Unable to Resolve", даже если включены правильные библиотеки.

Проект компилируется и запускается, как и ожидалось, поэтому, в конце концов, это не так уж и сложно, просто то, что все помечено как ошибка, делает его довольно раздражающим.

Я не смог найти ничего об этой ошибке. Просто одна расплывчатая ссылка в блоге. Кто-нибудь еще испытывал это?

Очевидно, что он не очень распространен, поэтому должна быть настройка / конфигурация, которая его вызывает. Кто-нибудь знает, кто не допустит этого?

РЕДАКТИРОВАТЬ:

Нет, эти "ошибки" есть только в IDE. Код компилируется нормально и работает. Разработчик использовал "using namespace std;" поэтому не должно быть никаких проблем. Похоже, что IDE NetBeans глючит.

Образец кода:

#include <stdlib.h>
#include <string>
#include <iostream>

using namespace std;

int main(int argc, char** argv)
{
   string test;
   test = "Why?";

   cout << test << endl;

   return (EXIT_SUCCESS);
}

Этот код компилирует и печатает "Почему?" но "string", "cout" и "endl" помечены как ошибки в IDE. Явное использование std:: не имеет значения

Очистить Править:

Для всех, кто заинтересовался, через несколько дней у меня было 6 обновлений для NetBeans. После установки этих обновлений проблема была устранена, несмотря на то, что код не изменился. Итак, по-видимому, это была ошибка NetBeans.

4 ответа

Решение

Для всех, кто заинтересовался, через несколько дней у меня было 6 обновлений для NetBeans. После установки этих обновлений проблема была устранена, несмотря на то, что код не изменился. Итак, по-видимому, это была ошибка NetBeans.

Хм.. это то же самое только что случилось со мной. Однажды я запустил NetBeans, он просто подчеркивал все мои вызовы openGL (gl, glu и glut), и я не мог избавиться от ошибок. Он скомпилирован очень хорошо (+ я ничего не менял в коде, так как в прошлый раз он не показывал ошибок)

После прочтения этого поста я проверил наличие обновлений, обновился, и теперь он показывает отсутствие ошибок:) это странно, потому что я регулярно обновляюсь..

РЕДАКТИРОВАТЬ: НВМ, теперь они снова подчеркнуты:(

У меня была такая же проблема с Netbeans 6.8 в Ubuntu 10.04. Разочарованно Netbeans сказал мне также, что это было актуально в меню "Справка -> Проверка обновлений" (так как это текущая версия для Ubuntu).

Удаление Netbeans через synaptic/aptitude и загрузка вручную и установка последней версии (6.9.1) также решили проблему для меня. Я надеюсь, что в магазине больше нет таких гадостей...

Теперь, когда я решил эту проблему и применил этот патч производительности, у меня установлена ​​действительно приятная IDE с быстрым завершением кода. Жаль, что этот опыт недоступен "из коробки", я потратил немало времени как на Eclipse CDT, так и на Netbeans, пытаясь заставить все работать хорошо.

Пытаться std::string, std::endl, std::cout, так далее.

Или же,

using std::string;
using std::endl;
using std::cout;

в начале вашего исходного файла, после того, как вы включите библиотеки. Возможно, ваша IDE помечает их как ошибки, но в любом случае использует стандартное пространство имен.

Вы также можете просто использовать

using namespace std;

но это, как правило, дурная привычка, поскольку она загромождает глобальное пространство имен, и в результате вы можете получить неоднозначности (стандартное пространство имен большое). Лично я просто поставил std:: прежде чем все в моих небольших проектах, и using std::______ в проекте или блоках, где я использую его в более крупных.

В любом случае, так звучит ошибка, но (по крайней мере, по моему опыту) программа не сможет скомпилироваться, если это проблема.

Согласно вашему редактированию:
если ошибки, которые вы получаете, исходят только из IDE, возможно, у вас они в неправильном режиме или что-то? Код, который вы разместили в своем примере, достаточно прост для C++, и любой компилятор или IDE, желающий работать с C++, справится с этим без проблем. Если описанные вами ошибки произошли от вашего компилятора, это будет означать, что вы либо не включили пространство имен, либо пытались скомпилировать код C++ с помощью компилятора C - возможно, netbeans думает, что вы пишете C?

Другие вопросы по тегам