Я недавно был представлен vcpkg поскольку я искал лучший способ установить Point Cloud Library (PCL), чтобы использовать ее в моем проекте Visual Studio C ++.
Я установил статические библиотеки PLC, используя .\vcpkg install pcl:x64-windows-static
а потом .\vcpkg integrate install
интегрировать библиотеки libs и dll в Visual Studio 2017. На данный момент моя цель — запустить демонстрацию Итеративный алгоритм ближайшей точки на официальном сайте PCL.
Я создал девственный проект и сделал следующее, чтобы добавить PCL:
Я пытаюсь скомпилировать ранее упомянутую демонстрацию в режиме Debug x86, но получаю следующую ошибку:
1>LINK : fatal error LNK1104: cannot open file 'manual-link.obj'
Обратите внимание, что в установленных каталогах PCL есть две папки, называемые ручная ссылка.
Первый — это «vcpkg-master \установленный \ x64-windows-static \ debug \ lib \ manual-link» и содержит два файла lib:
Другой — «vcpkg-master \ instal \ x64-windows-static \ lib \ manual-link» и включает в себя:
Я не знаю, что мне здесь не хватает. Кто-нибудь испытывал такую же проблему с PCL и Visual Studio 2017? Какие-либо решения этой проблемы?
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Других решений пока нет …