安装点云库
Install Point Cloud Library
最近有人向我介绍了 vcpkg,因为我一直在寻找安装点云库 (PCL) 以便使用它的最佳方法在我的 Visual Studio C++ 项目中。
我已经使用 .\vcpkg install pcl:x64-windows-static
安装了 PLC 静态库,然后 .\vcpkg integrate install
将库和 dll 集成到 Visual Studio 2017。我现在的目标是 运行官方 PCL 网站上 Iterative Closest Point Algorithm 的演示。
我创建了一个原始项目,并完成了以下操作以添加 PCL:
- 已将 "vcpkg-master\installed\x64-windows-static\include" 路径添加到 属性 页面->VC++ 目录->包含目录
- 已将 "vcpkg-master\installed\x64-windows-static\include" 路径添加到 属性 页面
->C/C++ ->其他包含目录
- 将所有 lib 文件(vcpkg-master\installed\x64-windows-static\lib 中的那些)添加到 属性 页面->链接器->附加依赖项
- 添加了 "vcpkg-master\installed\x64-windows-static\lib" 路径到 属性 页面->链接器->常规->其他库目录
我试图在调试 x86 模式下编译前面提到的演示,但我不断收到以下错误:
1>LINK : fatal error LNK1104: cannot open file 'manual-link.obj'
请注意,在已安装的 PCL 目录中,有两个名为 manual-link.
的文件夹
第一个是 "vcpkg-master\installed\x64-windows-static\debug\lib\manual-link",包含两个 lib 文件:
- boost_prg_exec_monitor-vc140-mt-gd.lib
- boost_test_exec_monitor-vc140-mt-gd.lib
另一个是 "vcpkg-master\installed\x64-windows-static\lib\manual-link",包括:
- boost_prg_exec_monitor-vc140-mt.lib
- boost_test_exec_monitor-vc140-mt.lib
我不知道我在这里错过了什么。 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) 更改为静态 link。
或者,您可以安装动态库 (x64-windows
),默认情况下它们将被自动获取,并且无需任何更改即可使用新项目的设置。
无论哪种方式,您都不需要向附加包含目录或附加依赖项添加任何路径。
[1] https://github.com/Microsoft/vcpkg/blob/master/docs/users/integration.md#triplet-selection
最近有人向我介绍了 vcpkg,因为我一直在寻找安装点云库 (PCL) 以便使用它的最佳方法在我的 Visual Studio C++ 项目中。
我已经使用 .\vcpkg install pcl:x64-windows-static
安装了 PLC 静态库,然后 .\vcpkg integrate install
将库和 dll 集成到 Visual Studio 2017。我现在的目标是 运行官方 PCL 网站上 Iterative Closest Point Algorithm 的演示。
我创建了一个原始项目,并完成了以下操作以添加 PCL:
- 已将 "vcpkg-master\installed\x64-windows-static\include" 路径添加到 属性 页面->VC++ 目录->包含目录
- 已将 "vcpkg-master\installed\x64-windows-static\include" 路径添加到 属性 页面
->C/C++ ->其他包含目录 - 将所有 lib 文件(vcpkg-master\installed\x64-windows-static\lib 中的那些)添加到 属性 页面->链接器->附加依赖项
- 添加了 "vcpkg-master\installed\x64-windows-static\lib" 路径到 属性 页面->链接器->常规->其他库目录
我试图在调试 x86 模式下编译前面提到的演示,但我不断收到以下错误:
1>LINK : fatal error LNK1104: cannot open file 'manual-link.obj'
请注意,在已安装的 PCL 目录中,有两个名为 manual-link.
的文件夹
第一个是 "vcpkg-master\installed\x64-windows-static\debug\lib\manual-link",包含两个 lib 文件:
- boost_prg_exec_monitor-vc140-mt-gd.lib
- boost_test_exec_monitor-vc140-mt-gd.lib
另一个是 "vcpkg-master\installed\x64-windows-static\lib\manual-link",包括:
- boost_prg_exec_monitor-vc140-mt.lib
- boost_test_exec_monitor-vc140-mt.lib
我不知道我在这里错过了什么。 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) 更改为静态 link。
或者,您可以安装动态库 (x64-windows
),默认情况下它们将被自动获取,并且无需任何更改即可使用新项目的设置。
无论哪种方式,您都不需要向附加包含目录或附加依赖项添加任何路径。
[1] https://github.com/Microsoft/vcpkg/blob/master/docs/users/integration.md#triplet-selection