【问题标题】:Point Cloud Library Simple Example Link Error点云库简单示例链接错误
【发布时间】:2019-04-10 14:57:44
【问题描述】:

我正在尝试从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})

感谢任何帮助。谢谢

【问题讨论】:

  • 呃!刚才发生了什么?!?这是一个丑陋的长格式错误的问题。
  • 感谢您指出这一点......希望现在更好:)
  • 好的,我删除了反对票。我建议你降级到以前的版本,然后再试一次。根据您向我们提供的信息,我看不出您有任何错误。

标签: c++ visual-studio-2010 cmake


【解决方案1】:

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

【讨论】:

  • 编译器可用于 32 位或 64 位。真正的区别是您需要将 CMake 生成器设置为“Visual Studio 10 Win64”,而不仅仅是 Visual Studio 10。这将为您提供 64 位设置的 sln。或者只是下载 32 位库,任何一种方法都可以工作.. :)
  • 我正在使用 VS 2017 以及从 unanancyowen.com/en/pcl18 下载的 32 位 pcl 可执行文件。我从 cmake 编译中获得了成功的 .sln 。但是,在 VS 2017 中构建 .sln 时,出现未解决的链接错误。可能是什么原因 ?详细信息也发布在这里 - stackoverflow.com/questions/45300979/…
【解决方案2】:

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

message("PCL_LIBRARIES - ${PCL_LIBRARIES}")

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

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

【讨论】:

  • 感谢您的回答。看起来它正在链接所有 PCL 库(甚至是第 3 方库)。我将您的行添加到 cmakelists.txt 并进行了检查。我已经在使用 Cmake 2.8.7,所以我尝试升级到 2.8.8,但没有成功。无论我使用的 cmake 版本如何,我都会遇到相同的错误 :((
【解决方案3】:

我觉得这么复杂可以用那种方式找到错误。 我已经在我的电脑上安装了 PCL,Windows 7 64 位和 VStudio 2010,示例运行良好。

确保已正确安装您的 PCL 和依赖项。 请查看下载部分here 在我的情况下,我下载了“一体化”版本。

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

看到“cmake文件”的结构后here尝试下载最新版本的cmake

最后,在 PCL 网站here 中运行基本项目

祝你有美好的一天

【讨论】:

    【解决方案4】:

    我也遇到了同样的问题,我通过手动链接 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 用于调试。

    它对我有用。

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-07
        • 1970-01-01
        • 2017-10-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多