Я отвечаю здесь, потому что это самый близкий вопрос к моей проблеме.
Я использовал интеграцию QT Eclipse с Helios (3.6.2) без особых проблем. Я использовал mingw 4.6.2, который я установил в c: \ mingw. Я хотел перейти на Indigo, чтобы исправить некоторые незначительные проблемы, которые у меня были с CDT.
Однако в Indigo (3.7 SR2) Eclipse начал подчеркивать тривиальные функции, как неразрешенные, такие как:
function 'fprintf' could not be resolved
function 'memset' could not be resolved
, хотя #include не было подчеркнуто, его можно открыть и включить в заголовок fprintf. И хотя сам код скомпилирован нормально.
Если я вернусь в Гелиос, проблемы уйдут.
Я пытался переиндексировать, но безрезультатно. Я проверил мои пути включения, и они были:
c:\mingw\include
C:\MinGW\lib\gcc\mingw32\4.6.2\include
Сначала я только что включил первое, но не второе. Но затем я искал «неразрешенные включения», и stdio.h включал в себя stdarg.h, которого нет в основной папке включения mingw, поэтому я добавил второе. Но все же printf не был разрешен, и больше не было «неразрешенных включений».
Я создал новый проект C ++ с одним классом. Я добавил stdio.h, пути выше и вызов fprintf. Это было подчеркнуто! Хотя другие вещи из stdio не были подчеркнуты.
Теперь я знал, что это не просто проблема Qt.
Я немного поработал над этим, прежде чем прочесть нижний пост, предлагающий удалить пути включения и компиляцию. Я не верил, что это сработает, но попробовал. Удивительно, но даже если компиляция не удалась, ошибка исчезла!
Именно тогда я еще раз взглянул на пути включения. Они были обновлены на этапе компиляции до следующего:
c:/mingw/lib/gcc/mingw32/4.6.2/include-fixed
c:/mingw/include
c:/mingw/lib/gcc/mingw32/4.6.2/include
c:/mingw/lib/gcc/mingw32/4.6.2/include/c++/backward
c:/mingw/lib/gcc/mingw32/4.6.2/include/c++/mingw32
c:/mingw/lib/gcc/mingw32/4.6.2/include/c++
Они были помечены как «встроенные» значения, которые, как я предполагаю, означают, что они не были добавлены мной и могут быть обновлены при следующем запуске сборки.
Итак, я думаю, что урок, в том числе каждый отдельный путь включения в Mingw, даже если Eclipse не находит его неразрешенным включением.
Следующим шагом было включение всех этих путей в мой проект Qt. К сожалению, после этого нерешенные функции остались. Кажется, это какая-то ошибка с путями включения Qt C / C ++, которые отличаются от путей включения CDT C / C ++.