【问题标题】:How to build PCL project如何构建 PCL 项目
【发布时间】:2013-11-11 02:39:34
【问题描述】:

我整个上午都在尝试运行 PCL 网站上显示的点云库示例 (http://pointclouds.org/documentation/tutorials/using_pcl_pcl_config.php#using-pcl-pcl-config),但仍然无法运行!

这就是我所做的:我已经在我的计算机中安装了用于 MSVS 2010(64 位)的 Point Cloud 库 PCL 1.6.0 All-In-One Installer,然后,安装了我发现需要的几个库(Boost和本征)。之后,我添加了 MS Visual Studio 2010 中所需的所有依赖项和库(PLC、boost 和 eigen),但我仍然遇到这些烦人的错误:

(我也尝试过在 windows 上使用 CMake gui,但它在生成项目时报告了很多错误)

1>PCL.obj:错误 LNK2019:无法解析的外部符号“void __cdecl pcl::console::print(enum pcl::console::VERBOSITY_LEVEL,char const *,...)”(?print@console@ pcl@@YAXW4VERBOSITY_LEVEL@12@PBDZZ) 在函数_main中引用

1>PCL.obj : 错误 LNK2001: 无法解析的外部符号“public: virtual int __thiscall pcl::PCDReader::readHeader(class std::basic_string,class std::allocator > const &,struct sensor_msgs::PointCloud2 & ,class Eigen::Matrix &,class Eigen::Quaternion &,int &,int &,unsigned int &,int)" (?readHeader@PCDReader@pcl@@UAEHABV?$basic_string@DU?$char_traits@D@std @@V?$allocator@D@2@@std@@AAUPointCloud2@sensor_msgs@@AAV?$Matrix@M$03$00$0A@$03$00@Eigen@@AAV?$Quaternion@M$0A@@8@AAH4AAIH @Z)

1>PCL.obj : 错误 LNK2001: 无法解析的外部符号“public: virtual int __thiscall pcl::PCDReader::read(class std::basic_string,class std::allocator > const &,struct sensor_msgs::PointCloud2 & ,class Eigen::Matrix &,class Eigen::Quaternion &,int &,int)" (?read@PCDReader@pcl@@UAEHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@ D@2@@std@@AAUPointCloud2@sensor_msgs@@AAV?$Matrix@M$03$00$0A@$03$00@Eigen@@AAV?$Quaternion@M$0A@@8@AAHH@Z)

任何,任何帮助将不胜感激。这件事花了我很多时间,让我发疯。

谢谢!!

【问题讨论】:

  • 既然一体式安装程序已经包含它们,为什么还要安装 Boost 和 Eigen?
  • 在那次尝试中,我刚刚安装了 PCL(没有第 3 方的东西),然后我安装了示例代码所需的库。我还尝试安装完整的 PCL + 3rd 包,但仍然出现相同的错误....

标签: 3d linker point-cloud-library


【解决方案1】:

您有一个链接器错误,因此您缺少一个 lib 文件或者您没有链接它们。或者您正在混合 32 位和 64 位配置和库。

您是否完成了我在this answer 中描述的所有步骤?

我建议使用一体化安装程序,除非您真的知道 PCL 如何以及为什么需要 3rd 方库。

【讨论】:

  • 谢谢!!我错过了在链接器中添加其他依赖项。然而,最简单的 pcd_write.cpp 现在正在工作,但 pcl_visualizer_demo.cpp 由于 VTK 未解析符号的失败而失败。我在 VC++ 目录中添加了包含和库目录的路径。我是否必须在 Linker-Input-Additional Dependencies 中添加每个 .lib VTK 文件? VTK lib 文件夹中有大约 100 个 .lib 文件!
  • 不,从技术上讲,您只需要添加您正在使用的那些 - 话虽如此,有时很难弄清楚您需要哪些所以更容易添加所有这些:)(您可以规则排除明显不需要的,例如与数据库(sql、mapreduce)或图像格式(tiff/jpeg/dicom)相关的那些,并添加所有剩余的)
猜你喜欢
  • 2012-09-29
  • 1970-01-01
  • 2016-10-15
  • 2019-09-30
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 2015-05-29
  • 2010-10-10
相关资源
最近更新 更多