Индекс 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.