cmake+Eclipse/Nsight: ошибка синтаксического анализа компилятора (nvcc)?

Я использую CMake для создания файлов проекта для Nsight (= расширенная версия Eclipse CDT) для проекта CUDA. Проблема в том, что Eclipse анализирует ошибки компилятора, сгенерированные nvcc.

Я включил "nvcc error parser" в "project->properties->C/C++ Make Project->Error Parsers" и переместил его в верхнюю часть списка, но безрезультатно. Синтаксический анализ ошибок работает хорошо для "нативных" проектов nSight CUDA и для проектов, созданных не CUDA/ не nvcc C++ cmake.

CMakeLists.txt очень прост:

cmake_minimum_required (VERSION 2.8)
project(myproject)

find_package(CUDA REQUIRED)
set(CUDA_SOURCES 
    myprojmain.cu
    )

cuda_add_executable( myproject ${CUDA_SOURCES})

1 ответ

Решение

Я выяснил причину этого. В файле проекта XML проекта. Поддерево

ProjectDescription / buildSpec / buildCommand / аргументы / словарь / *

содержит пары ключ / значение.

<key>org.eclipse.cdt.core.errorOutputParser</key>

настраивает список анализаторов ошибок:

<value>nvcc.errorParser;org.eclipse.cdt.core.VCErrorParser;org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.WorkingDirLocator;org.eclipse.cdt.core.GLDErrorParser;</value>

Чтобы синтаксический анализ ошибок nvcc работал, nvcc.errorParse должен быть в списке. Порядок имеет значение, так что, вероятно, лучше поставить его перед собой.

Я собрал небольшой скрипт на python для личного использования, который соответствующим образом исправляет проекты Eclipse CDT. Он прикреплен как fix-cmake-nsight-err-0.01.tar.gz к ошибке cmake http://public.kitware.com/Bug/view.php?id=15277 Было бы неплохо увидеть это интегрированным в CMake время...

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