PointCloudLibrary使用All-in-one安装程序和Visual Studio 2017链接错误

时间:2018-03-28 20:59:11

标签: visual-studio visual-studio-2017 linker-errors point-cloud-library point-clouds

我正在尝试使用此PCL库,并下载了一体机安装程序(1.8.1-mscv2017-win64)。 添加了“包含目录”的所有目录。

将所有相应的库文件夹添加到“库目录”。

检查系统路径。

但它仍然给了我大约30个链接错误,如下面两个:

LNK2019 unresolved external symbol "void __cdecl pcl::console::print(enum pcl::console::VERBOSITY_LEVEL,char const *,...)" (?print@console@pcl@@YAXW4VERBOSITY_LEVEL@12@PEBDZZ) referenced in function "public: void __cdecl pcl::detail::FieldMapper<struct pcl::PointXYZRGBA>::operator()<struct pcl::fields::rgba>(void)" (??$?RUrgba@fields@pcl@@@?$FieldMapper@UPointXYZRGBA@pcl@@@detail@pcl@@QEAAXXZ)    RealSensewithPCL

LNK2001 unresolved external symbol "public: virtual int __cdecl pcl::PCDReader::readHeader(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,struct pcl::PCLPointCloud2 &,class Eigen::Matrix<float,4,1,0,4,1> &,class Eigen::Quaternion<float,0> &,int &,int &,unsigned int &,int)" (?readHeader@PCDReader@pcl@@UEAAHAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAUPCLPointCloud2@2@AEAV?$Matrix@M$03$00$0A@$03$00@Eigen@@AEAV?$Quaternion@M$0A@@7@AEAH4AEAIH@Z)

1 个答案:

答案 0 :(得分:1)

以下是我在帖子中提到的步骤之后关于链接错误的问题的更新:

  1. 添加“包含目录”的所有目录。
  2. 将所有相应的库文件夹添加到“库目录”。
  3. 链接错误LNK2019是由缺少的依赖项('.lib'文件)引起的。 添加它们的最佳方法与本文中提到的方法相同: In visual studio how to include all .libs in a folder

    基本上,转到属性 - >配置属性 - >链接器 - >命令行,将所有“.lib”文件的路径添加到“其他选项”。

    确保只为当前配置(调试或发布)添加正确的.lib文件。对于“调试”模式,您需要在文件名中添加带有“gd”或“debug”的.lib文件。否则,您可能会遇到与此类似的新链接错误(LNK2038):

    LNK2038 mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in cloud_viewer.obj        
    

    这是我在命令行中放置的内容(所有路径都以空格分隔):

    "C:\Program Files\PCL 1.8.1\3rdParty\VTK\lib\*gd.lib" "C:\Program Files\PCL 1.8.1\3rdParty\Boost\lib\*gd-1_64.lib" "C:\Program Files\PCL 1.8.1\3rdParty\FLANN\lib\*gd.lib" "C:\Program Files\PCL 1.8.1\lib\*_debug.lib"
    

    希望这个答案可以让你摆脱困境,开始滚动!