7

我正在尝试从http://pointclouds.org/documentation/tutorials/pcl_visualizer.php运行以下 PCL 简单查看器示例 我已经使用 Cmake 和推荐的 Cmakelists.txt 成功构建了二叉树

生成后,当我尝试构建它时,出现以下错误:

error LNK2019: unresolved external symbol "public: void __thiscall pcl::visualization::PCLVisualizer::initCameraParameters(void)" (?initCameraParameters@PCLVisualizer@visualization@pcl@@QAEXXZ) referenced in function "class boost::shared_ptr<class pcl::visualization::PCLVisualizer> __cdecl simpleVis(class boost::shared_ptr<class pcl::PointCloud<struct pcl::PointXYZ> const >)" (?simpleVis@@YA?AV?$shared_ptr@VPCLVisualizer@visualization@pcl@@@boost@@V?$shared_ptr@$$CBV?$PointCloud@UPointXYZ@pcl@@@pcl@@@2@@Z)`

error LNK2019: unresolved external symbol "public: void __thiscall pcl::visualization::PCLVisualizer::addCoordinateSystem(double,int)" (?addCoordinateSystem@PCLVisualizer@visualization@pcl@@QAEXNH@Z) referenced in function "class boost::shared_ptr<class pcl::visualization::PCLVisualizer> __cdecl simpleVis(class boost::shared_ptr<class pcl::PointCloud<struct pcl::PointXYZ> const >)" (?simpleVis@@YA?AV?$shared_ptr@VPCLVisualizer@visualization@pcl@@@boost@@V?$shared_ptr@$$CBV?$PointCloud@UPointXYZ@pcl@@@pcl@@@2@@Z)


error LNK2019: unresolved external symbol "public: bool __thiscall pcl::visualization::PCLVisualizer::setPointCloudRenderingProperties(int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int)" (?setPointCloudRenderingProperties@PCLVisualizer@visualization@pcl@@QAE_NHNABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) referenced in function "class boost::shared_ptr<class pcl::visualization::PCLVisualizer> __cdecl simpleVis(class boost::shared_ptr<class pcl::PointCloud<struct pcl::PointXYZ> const >)" (?simpleVis@@YA?AV?$shared_ptr@VPCLVisualizer@visualization@pcl@@@boost@@V?$shared_ptr@$$CBV?$PointCloud@UPointXYZ@pcl@@@pcl@@@2@@Z)

这些只是其中的几个……我在 cmakelists.txt 中遗漏了什么吗?

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)

project(pcl_visualizer_viewports)

find_package(PCL 1.5.1 REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})

link_directories(${PCL_LIBRARY_DIRS})

add_definitions(${PCL_DEFINITIONS})

add_executable (pcl_visualizer_demo pcl_visualizer_demo.cpp)

target_link_libraries (pcl_visualizer_demo ${PCL_LIBRARIES})

任何帮助表示赞赏。谢谢

4

5 回答 5

4

发现问题所在:虽然我运行的是 64 位机器,但我的编译器(VS2010)配置为 32 位,所以我需要卸载 64 位点云库并安装 32 位版本。现在它起作用了。经验教训 :D

于 2012-04-26T18:15:31.730 回答
1

看起来您没有链接 PCL 库。这可能是因为${PCL_LIBRARIES}在运行 CMake 时未正确设置。你可以添加

message("PCL_LIBRARIES - ${PCL_LIBRARIES}")

调用后到您的 CMakeLists.txt 文件find_package以检查值。

如果您使用的是 CMake v2.8.8,则此错误可能是您出现问题的原因。尝试恢复到v2.8.7

于 2012-04-26T13:44:28.897 回答
0

我也有同样的问题,我通过手动链接 pcl_visualization.lib 文件解决了。可以在visual c++ 2010中尝试以下步骤:

项目属性 -> 链接器 -> 输入 -> 附加依赖项 -> 添加文件。

就我而言,我添加了G:\PCL\PCL 1.6.0\lib\pcl_visualization_release.lib用于发布和G:\PCL\PCL 1.6.0\lib\pcl_visualization_debug.lib用于调试。

它对我有用。

于 2014-01-08T10:11:06.477 回答
0

我认为如此复杂可以通过这种方式找到错误。我已经在我的电脑、Windows 7 64 位和 VStudio 2010 中安装了 PCL,示例运行良好。

确保已正确安装您的 PCL 和依赖项。请查看此处的下载部分就我而言,我下载了“一体式”版本。

按照说明一步一步来,不是很复杂。

在你可以在这里看到“cmake文件”的结构之后尝试下载最新版本的cmake

最后,在此处运行 PCL 网站中的基本项目

祝你今天过得愉快

于 2012-08-17T17:37:13.867 回答
0

在这里解释了如何在 Windows 中的一个安装程序中安装 PCL 1.8.1。问题是什么,请确保:

在此处输入图像描述

于 2019-04-10T06:57:44.350 回答