我正在尝试从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})
感谢任何帮助。感谢
答案 0 :(得分:4)
发现问题所在:虽然我正在运行64位机器,但我的编译器(VS2010)配置为32位,所以我需要卸载64位Point Cloud Library并安装32位版本。现在它有效。获得的经验教训:D
答案 1 :(得分:0)
您好像没有链接PCL库。这可能是因为在运行CMake时未正确设置${PCL_LIBRARIES}
。你可以添加
message("PCL_LIBRARIES - ${PCL_LIBRARIES}")
在find_package
调用后,到您的CMakeLists.txt文件中检查值。
答案 2 :(得分:0)
我认为如此复杂可以通过这种方式找到错误。 我已经在我的电脑,Windows 7 64位和VStudio 2010中安装了PCL,样品运行良好。
确保已正确安装了PCL和依赖项。 请查看下载部分here在我的情况下,我下载了“all in one”版本。
按照说明,一步一步,并不是很复杂。
您可以看到“cmake文件”的结构如何here尝试下载最新版本的cmake
最后,在PCL网站here
中运行基本项目度过愉快的一天
答案 3 :(得分:0)
我也有同样的问题,我通过手动链接pcl_visualization.lib文件解决了。 可以尝试在visual c ++ 2010中执行以下步骤:
项目属性 - &gt;链接器 - &gt;输入 - &gt;附加依赖性 - &gt; 添加文件。
在我的情况下,我添加了 G:\ PCL \ PCL 1.6.0 \ lib \ pcl_visualization_release.lib 以及 G:\ PCL \ PCL 1.6.0 \ lib \ pcl_visualization_debug .lib 用于调试。
它对我有用。
答案 4 :(得分:0)
我介绍了here如何在Windows的一个安装程序中全部安装PCL 1.8.1。问题出在哪里,只需确保: