Установить библиотеку облаков точек

Недавно я познакомился с vcpkg, так как искал лучший способ установить Point Cloud Library (PCL), чтобы использовать его в моем проекте Visual Studio C++.

Я установил статические библиотеки PLC, используя .\vcpkg install pcl:x64-windows-static а потом .\vcpkg integrate install интегрировать библиотеки libs and dll в Visual Studio 2017. Сейчас моя цель - запустить демонстрацию алгоритма итеративного алгоритма ближайшей точки на официальном сайте PCL.

Я создал девственный проект и сделал следующее, чтобы добавить PCL:

  • Добавлен путь "vcpkg-master\instal \x64-windows-static\include" к странице свойств-> Каталоги VC++-> Включить каталоги
  • Добавлен путь "vcpkg-master\instal \x64-windows-static\include" к странице свойств
    ->C/C++ -> Дополнительные каталоги включения
  • Добавлены все файлы lib (те, что находятся в vcpkg-master \ instal \x64-windows-static\lib) на странице свойств->Linker-> Дополнительные зависимости
  • Добавлен путь "vcpkg-master\instal \x64-windows-static\lib" к странице свойств->Linker->General-> Дополнительные каталоги библиотеки

Я пытаюсь скомпилировать ранее упомянутую демонстрацию в режиме Debug x86, но получаю следующую ошибку:

1>LINK : fatal error LNK1104: cannot open file 'manual-link.obj'

Обратите внимание, что в установленных каталогах PCL есть две папки, которые называются manual-link.
Первый - это "vcpkg-master \установленный \x64-windows-static\debug\lib\manual-link" и содержит два файла lib:

  • boost_prg_exec_monitor-vc140-мт-gd.lib
  • boost_test_exec_monitor-vc140-мт-gd.lib

Другой - "vcpkg-master\instal \x64-windows-static\lib\manual-link" и включает в себя:

  • boost_prg_exec_monitor-vc140-mt.lib
  • boost_test_exec_monitor-vc140-mt.lib

Я не знаю, что мне здесь не хватает. Кто-нибудь испытывал такую ​​же проблему с PCL и Visual Studio 2017? Какие-либо решения этой проблемы?

1 ответ

Решение

x64-windows-static триплеты не будут выбраны автоматически [1] - вам нужно отредактировать MSBuild vcxproj и установить VcpkgTriplet Свойство MSBuild для x64-windows-static:

<PropertyGroup Label="Globals">
  <!-- .... -->
  <VcpkgTriplet Condition="'$(Platform)'=='Win32'">x86-windows-static</VcpkgTriplet>
  <VcpkgTriplet Condition="'$(Platform)'=='x64'">x64-windows-static</VcpkgTriplet>
</PropertyGroup>

Обратите внимание, что вам также нужно будет перейти на статическую ссылку CRT (/MT), если вы сделаете это.

Кроме того, вы можете установить динамические библиотеки (x64-windows) и они будут автоматически выбраны по умолчанию и будут работать с настройками вашего нового проекта без каких-либо изменений.

В любом случае вам не нужно добавлять какие-либо пути к вашим дополнительным каталогам включения или к вашим дополнительным зависимостям.

[1] https://github.com/Microsoft/vcpkg/blob/master/docs/users/integration.md#triplet-selection

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