Ошибка С++ CMake FLANN при сборке pcl в vs2012

Пытаюсь собрать PCL на VS2012 в Windows 8.1, чтобы попытаться интегрировать с ним свой датчик Kinect для Windows v2, однако, похоже, я сталкиваюсь с кучей ошибок CMake, с которыми я не знаю, что делать. это отчасти потому, что я не очень хорошо знаком с CMake, поэтому я следую руководству здесь в котором описывается построение зависимостей с помощью графического интерфейса CMake. Однако на протяжении всего этого процесса я обнаружил, что единственные вещи, которые строятся правильно, — это те, которые я создаю с помощью cmake в командной строке. ошибки:

Для ФЛАНН:

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

Ошибка 21 ошибка C2228: слева от «.serialize» должен быть class/struct/union D:\flann-1.8.4-src\flann-1.8.4-src\src\cpp\flann\util\serialization.h строка 18 : type.serialize(ar); Ошибка 24 ошибка LNK1181: невозможно открыть входной файл '..\lib\Release\flann.lib' D:\flann-1.8.4-src\flann-1.8.4-src\build\examples\LINK Ошибка 25 ошибка MSB3073: Команда setlocal C:\CMake\bin\cmake.exe -DBUILD_TYPE=Release -P cmake_install.cmake if %errorlevel% neq 0 goto :cmEnd :cmEnd endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone :cmErrorLevel exit / b %1 :cmDone, если %errorlevel% neq 0 goto :VCEnd :VCEnd" завершился с кодом 1. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets 134

Для ВТК:

параметр VTK_USE_QTOPENGL не отображается, хотя я уже сначала включил VTK_USE_QT, и генерация проекта для VS2012 несколько раз падала, но удалось пройти мимо сбоев (я беспокоюсь, что это не сулит ничего хорошего для фактического использования VTK)

Для Кхалла:

аналогичная ошибка как FLANN:

Ошибка 1, ошибка MSB3073: команда setlocal C:\CMake\bin\cmake.exe -DBUILD_TYPE=Debug -P cmake_install.cmake if %errorlevel% neq 0 goto :cmEnd :cmEnd endlocal & call :cmErrorLevel %errorlevel% & goto : cmDone :cmErrorLevel exit /b %1 :cmDone if %errorlevel% neq 0 goto :VCEnd :VCEnd" завершился с кодом 1. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft. CppCommon.targets 134

а в остальном строит хорошо. любой совет приветствуется.


person physincubus    schedule 06.11.2014    source источник


Ответы (1)


У меня были аналогичные проблемы со сборкой PCL с VS2012 в Windows 7.

Вот как я решил: во всех случаях перед открытием Visual studio от имени администратора.

ФЛАНН

  1. Используйте CMake и после щелчка «Настроить» установите для BUILD_PYTHON_BINDINGS и BUILD_MATLAB_BINDINGS значение OFF.
  2. Нажмите еще раз в «Настроить», затем «Создать».
  3. Откройте файл решения (с VS в качестве администратора).
  4. Отредактируйте файл flann\src\cpp\flann\util\serialization.h, добавив после оператора BASIC_TYPE_SERIALIZER(...) (примерно в строке #93) следующие строки: #ifdef _MSC_VER BASIC_TYPE_SERIALIZER(unsigned __int64); #endif
  5. Соберите проект ALL_BUILD и проект INSTALL как в конфигурации отладки, так и в конфигурации выпуска.

QHUll

  1. Откройте CMake и, прежде чем нажать «Настроить», нажмите «Добавить запись» и заполните поля следующим образом: Имя: CMAKE_DEBUG_POSTFIX Тип: STRING Значение: _d
  2. Затем нажмите «ОК».
  3. Дважды нажмите «Настроить» и «Создать».
  4. Откройте решение и соберите проект ALL_BUILD и проект INSTALL как в конфигурации отладки, так и в конфигурации выпуска.

ВТК

  1. Откройте CMake и, прежде чем нажать «Настроить», и, если у вас не было переменных среды для Qt4.x, вручную найдите: QT_QMAKE_EXECUTABLE в расположение qmake.exe QT_QTCORE_librery_RELEASE QT_QTCORE_LIBRARY_DEBUG QT_MKSPECIF_DIR
  2. Откройте решение и соберите проект ALL_BUILD и проект INSTALL как в конфигурации отладки, так и в конфигурации выпуска.

Надеюсь, это сработает для вас.

person rodrygojose    schedule 18.12.2014
comment
Спасибо! Я бы проголосовал, но мне не хватает представителей. Я дам вам знать, если это сработает - person physincubus; 29.01.2015
comment
Работает! Большое спасибо! - person physincubus; 29.01.2016
comment
Здорово! Но вам не нужна визуальная студия в режиме администратора, если вы измените CMAKE_INSTALL_PREFIX соответственно на папку с правами записи для вашего пользователя. - person Knipser; 18.04.2018