Установить библиотеку облаков точек
Недавно я познакомился с 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