Индекс Qt5 в проекте Eclipse IDE с использованием Cmake

Фон

В настоящее время я использую Eclipse Neon.3 и установил пакет "C/C++ CMake Build Support - Experimental" (я не использую генератор Eclipse от CMake). У меня есть простая программа, которая использует Qt 5.8, которая успешно собирается, однако Eclipse, похоже, не может индексировать символы Qt (например, QCoreApplication, QDebug и т. Д.).

Симптомы этого:

  • Нет предложений по дополнению кода
  • #include <QtCore> и другие операторы включения отображаются как неразрешенные
  • Символы Qt, такие как QCoreApplication, QDebug(), а также QCoreApplication.exec() отображаются как не разрешенные.

Код

CMakeLists.txt файл

cmake_minimum_required(VERSION 3.5)
project(test-program)

set(CMAKE_CXX_STANDARD 11)

# Put the CMake files for Qt5 in the Prefix path.
set(Qt5_DIR /opt/Qt/5.8/gcc_64/lib/cmake/Qt5/)

#Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)

#Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)

#Find the Qt5Core Library
find_package(Qt5 REQUIRED COMPONENTS Core Widgets)

set(SOURCE_FILES
    src/main.cpp)

add_executable(${PROJECT_NAME} ${SOURCE_FILES})

target_link_libraries(${PROJECT_NAME} Qt5::Core) 

main.cpp (показано с аннотациями затмения)

#include <QtCore> //Unresolved inclusion: <QtCore>
#include <QDebug> //Unresolved inclusion: <QDebug>

int main(int argc, char** argv){
    QCoreApplication application(argc, argv); 
    //Type 'QCoreApplication' could not be resolved 

    qDebug() << "Test";
    //Function 'qDebug' could not be resolved

    application.exec();
    //Method 'exec' could not be resolved

    return 0;
}

Вопрос

Поэтому мой вопрос таков: как я могу заставить Eclipse распознавать Eclipse для распознавания символов Qt? Или это просто невозможно в это время?

1 ответ

Вы включили "CDT GCC Build Output Parser"? Это функция Eclipse для анализа выходных данных сборки и автоматического определения путей включения. Вы можете найти его в разделе " Свойства проекта" -> "Общие сведения о C/C++" - "Включать пути препроцессора", "Макросы" и т. Д., А затем на вкладке " Поставщики".

Для правильной работы этой функции необходимо создать подробный отчет о сборке. Вы можете добиться этого, изменив команду сборки в Preferences->C/C++ Build на make VERBOSE=1 или указав set(CMAKE_VERBOSE_MAKEFILE On) внутри вашего CMakeLists.txt.

См. Также Справка Eclipse - Настройки обнаружения сканера

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