PointCloudLibrary Link 使用一体化安装程序的错误和 visual studio 2017
PointCloudLibrary Link errors using All-in-one installer and visual studio 2017
我正在尝试使用这个 PCL 库,并下载了一体化安装程序 (1.8.1-mscv2017-win64)。
添加了 "Include Directories".
的所有目录
将所有相应的库文件夹添加到 "Library Directories"。
已检查系统路径。
但它仍然给我大约 30 Link 个错误,例如以下两个:
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[=12=][=12=]A@[=12=]@Eigen@@AEAV?$Quaternion@M[=12=]A@@7@AEAH4AEAIH@Z)
以下是我在 post 中提到的步骤后出现 link 错误问题的更新:
- 添加 "Include Directories" 的所有目录。
- 将所有相应的库文件夹添加到"Library Directories"。
link 错误 LNK2019 是由缺少依赖项(“.lib”文件)引起的。
添加它们的最佳方法与此 post 中提到的方法相同:
In visual studio how to include all .libs in a folder
基本上,转到属性->配置属性->链接器->命令行,将所有“.lib”文件的路径添加到"Additional Options"。
确保只为当前配置(调试或发布)添加正确的 .lib 文件。对于 "Debug" 模式,您需要在文件名中添加带有 "gd" 或 "debug" 的 .lib 文件。否则,您可能会遇到与此类似的新 link 错误 (LNK2038):
LNK2038 mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in cloud_viewer.obj
这是我在命令行中输入的内容(所有路径由 space 分隔):
"C:\Program Files\PCL 1.8.1rdParty\VTK\lib\*gd.lib" "C:\Program Files\PCL 1.8.1rdParty\Boost\lib\*gd-1_64.lib" "C:\Program Files\PCL 1.8.1rdParty\FLANN\lib\*gd.lib" "C:\Program Files\PCL 1.8.1\lib\*_debug.lib"
希望这个答案可以让您从设置和开始滚动的麻烦中解脱出来!
我正在尝试使用这个 PCL 库,并下载了一体化安装程序 (1.8.1-mscv2017-win64)。 添加了 "Include Directories".
的所有目录将所有相应的库文件夹添加到 "Library Directories"。
已检查系统路径。
但它仍然给我大约 30 Link 个错误,例如以下两个:
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[=12=][=12=]A@[=12=]@Eigen@@AEAV?$Quaternion@M[=12=]A@@7@AEAH4AEAIH@Z)
以下是我在 post 中提到的步骤后出现 link 错误问题的更新:
- 添加 "Include Directories" 的所有目录。
- 将所有相应的库文件夹添加到"Library Directories"。
link 错误 LNK2019 是由缺少依赖项(“.lib”文件)引起的。 添加它们的最佳方法与此 post 中提到的方法相同: In visual studio how to include all .libs in a folder
基本上,转到属性->配置属性->链接器->命令行,将所有“.lib”文件的路径添加到"Additional Options"。
确保只为当前配置(调试或发布)添加正确的 .lib 文件。对于 "Debug" 模式,您需要在文件名中添加带有 "gd" 或 "debug" 的 .lib 文件。否则,您可能会遇到与此类似的新 link 错误 (LNK2038):
LNK2038 mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in cloud_viewer.obj
这是我在命令行中输入的内容(所有路径由 space 分隔):
"C:\Program Files\PCL 1.8.1rdParty\VTK\lib\*gd.lib" "C:\Program Files\PCL 1.8.1rdParty\Boost\lib\*gd-1_64.lib" "C:\Program Files\PCL 1.8.1rdParty\FLANN\lib\*gd.lib" "C:\Program Files\PCL 1.8.1\lib\*_debug.lib"
希望这个答案可以让您从设置和开始滚动的麻烦中解脱出来!