我使用vcpkg在计算机上安装PCL(x64-windows-static),以便在VS2017项目中使用它。
我按照vcpkg进行安装,然后使用命令.\vcpkg install pcl:x64-windows-static
,一切正常。
然后,我更改了vcxproj以便添加行
<VcpkgTriplet Condition="'$(Platform)'=='x64'">x64-windows-static</VcpkgTriplet>
,因为我以静态方式而不是动态方式进行编译,然后将/Md
更改为/Mt
,因为(同样),我以静态方式进行了编译。 / p>
到目前为止,一切都很好。但是现在,为了尝试设置,我尝试创建一个非常简单的项目,其中仅包含一些文件:
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/io/ply_io.h>
#include <pcl/point_cloud.h>
#include <pcl/console/parse.h>
#include <pcl/common/transforms.h>
#include <pcl/visualization/pcl_visualizer.h>
int
main(int argc, char** argv)
{
return 0;
}
编译此代码时,我有很多错误。
vtkMapper::ImmediateModerRenderingOff': was declared deprecated
namespace "boost::date_time" does not have member class "gregorian_calendar_base"
namespace "boost::date_time" has no member "months_of_year"
namespace "boost::system" has no member "error_code"
more than one instance of overloaded function "boost:mpl::assert_not_arg" matches the argument list:
class "boost::mpl::apply_wrap2<boost::mpl::push_front<boos::mpl::na, boost::mpl::na>, boost::mpl::l_end, boost::signals2::detail::foreign_void_shared_ptr>" has no member "type"
以此类推...我有很多。而且我的代码无法执行。
我试图删除一些包含,但现在只有
#include <iostream>
#include <pcl/io/pcd_io.h>
int
main(int argc, char** argv)
{
return 0;
}
我的代码“编译”并执行,但是我仍然有很多错误。我相信这次执行代码是因为我没有vtkMapper::ImmediateModerRenderingOff': was declared deprecated
,但仍然有前面提到的其他错误。因此它编译时出错,但是仍然执行...
有人可以解释我发生了什么事吗?我真的迷路了。我对vcpkg做错了吗?为什么在编译过程中出现错误时我的代码会执行?
编辑::
通过仅在错误列表中将“构建+智能感知”切换为“构建”,我能够消除错误
但是我仍然不明白如果编译期间出现错误,我的项目将如何执行。另外,我仍然有关于vtk::ImmediateModeRenderingOff
被弃用的错误...
有人知道我该如何消除此错误?