在 Mac OS X 上使用 PCL(点云库)生成项目

2023-12-28

我按照其建议安装了所有依赖项和预编译的 PCL 库site http://pointclouds.org/downloads/macosx.html.

安装完所有内容后,我想生成一个项目如下this http://pointclouds.org/documentation/tutorials/using_pcl_pcl_config.php#using-pcl-pcl-config教程。

执行“make”命令后,我收到几个警告和以下两个错误:

37 warnings generated.
Linking CXX executable pcd_write_test
Undefined symbols for architecture x86_64:
  "pcl::PCDWriter::writeASCII(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, sensor_msgs::PointCloud2 const&, Eigen::Matrix<float, 4, 1, 0, 4, 1> const&, Eigen::Quaternion<float, 0> const&, int)", referenced from:
      pcl::PCDWriter::write(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, sensor_msgs::PointCloud2 const&, Eigen::Matrix<float, 4, 1, 0, 4, 1> const&, Eigen::Quaternion<float, 0> const&, bool) in pcd_write.cpp.o
  "pcl::PCDWriter::writeBinary(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, sensor_msgs::PointCloud2 const&, Eigen::Matrix<float, 4, 1, 0, 4, 1> const&, Eigen::Quaternion<float, 0> const&)", referenced from:
      pcl::PCDWriter::write(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, sensor_msgs::PointCloud2 const&, Eigen::Matrix<float, 4, 1, 0, 4, 1> const&, Eigen::Quaternion<float, 0> const&, bool) in pcd_write.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [pcd_write_test] Error 1
make[1]: *** [CMakeFiles/pcd_write_test.dir/all] Error 2
make: *** [all] Error 2

有人对如何解决这个问题有任何建议吗?

我使用的是 Mac OS X 10.9.4。


在 mac-book pro yosemite(10.10.3) 上我做了以下操作 运行 pcl 教程 (pcd_write.cpp)。

在 CMakeLists.txt 中

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
project(MY_GRAND_PROJECT)
find_package(PCL 1.8 REQUIRED COMPONENTS common io)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(pcd_write_test pcd_write.cpp)
target_link_libraries(pcd_write_test ${PCL_COMMON_LIBRARIES} ${PCL_IO_LIBRARIES})

在构建目录中运行 ccmake .. 给出

 CMAKE_BUILD_TYPE                                                              
 CMAKE_INSTALL_PREFIX             /usr/local                                   
 CMAKE_OSX_ARCHITECTURES                                                       
 CMAKE_OSX_DEPLOYMENT_TARGET                                                   
 CMAKE_OSX_SYSROOT                                                             
 DAVIDSDK_INCLUDE_DIR             DAVIDSDK_INCLUDE_DIR-NOTFOUND                
 DAVIDSDK_LIBRARY                 DAVIDSDK_LIBRARY-NOTFOUND                    
 EIGEN_INCLUDE_DIRS               /opt/local/include/eigen3                    
 ENSENSO_INCLUDE_DIR              ENSENSO_INCLUDE_DIR-NOTFOUND                 
 ENSENSO_LIBRARY                  ENSENSO_LIBRARY-NOTFOUND                     
 LIBUSB_1_INCLUDE_DIR             /opt/local/include                           
 LIBUSB_1_LIBRARY                 /opt/local/lib/libusb-1.0.dylib              
 OPENNI2_INCLUDE_DIRS             OPENNI2_INCLUDE_DIRS-NOTFOUND                
 OPENNI2_LIBRARY                  OPENNI2_LIBRARY-NOTFOUND                     
 OPENNI_INCLUDE_DIRS              /usr/include/ni                              
 OPENNI_LIBRARY                   /usr/lib/libOpenNI.dylib                     
 PCL_COMMON_INCLUDE_DIR           /usr/local/include/pcl-1.8 
 PCL_DIR                          /usr/local/share/pcl-1.8                     
 PCL_IO_INCLUDE_DIR               /usr/local/include/pcl-1.8                   
 PCL_OCTREE_INCLUDE_DIR           /usr/local/include/pcl-1.8

并且代码编译成功

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
int main(int argc, const char * argv[]) {
    //insert code here..
    pcl::PointCloud<pcl::PointXYZ> cloud;

    cloud.width    = 5;
    cloud.height   = 1;
    cloud.is_dense = false;
    cloud.points.resize (cloud.width * cloud.height);

    for (size_t i = 0; i < cloud.points.size (); ++i){
        cloud.points[i].x = 1024 * rand () / (RAND_MAX + 1.0f);
        cloud.points[i].y = 1024 * rand () / (RAND_MAX + 1.0f);
        cloud.points[i].z = 1024 * rand () / (RAND_MAX + 1.0f);
    }

    pcl::io::savePCDFileASCII ("test_pcd.pcd", cloud);
    std::cerr << "Saved " << cloud.points.size () << " data points to test_pcd.pcd." << std::endl;

    for (size_t i = 0; i < cloud.points.size (); ++i)
        std::cerr << "    " << cloud.points[i].x << " " << cloud.points[i].y << " " << cloud.points[i].z << std::endl;

    return (0);

    std::cout << "Hello, World!\n";
    return 0;
}

...希望它对某人有用!

nik

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Mac OS X 上使用 PCL(点云库)生成项目 的相关文章

随机推荐

  • 在不同项目中对 WebAPI 和 Asp.Net Core 使用同一个身份

    我有一个包含 2 个点网核心项目的解决方案 Web API 网络应用程序 MVC Web 应用程序是 Web API 使用者 我的网络应用程序控制器将使用httpclient为了获取数据 我使用 razor 作为客户端 没有 Angular
  • 使用 Composer create-project 拉取最新提交

    我想用composer create project始终提取我正在使用的开发版本的最新提交 我注意到一个类似的问题 https stackoverflow com questions 36600849 composer create pro
  • JavaFX fxml - 如何将 Spring DI 与嵌套自定义控件一起使用?

    我已经阅读了许多有关将 Spring DI 与 JavaFx 集成的教程 但我遇到了简单示例无法涵盖的障碍 而且我无法弄清楚 我希望视图层和表示层之间完全分离 我想使用 fxml 来定义可组合视图 并使用 Spring 将它们连接在一起 这
  • 当日期选择器关闭时调用函数,当我仅单击日期选择器外部时

    是否可以将日期选择器设置为仅在我单击日期选择器外部时关闭 关闭日历时 如果选择了日期 alertDate函数被调用 代码在这里 https stackblitz com edit react o8dm7y https stackblitz
  • 在函数外部访问函数变量?

    我是初学者 这是我正在上的课程 我知道关于return 但它不允许我在这段代码中做我想做的事情 这是包含变量的函数 def disp cookies This stuff is just for a print display inx 0
  • 在运行时动态修改符号表(C语言)

    是否可以在C运行时动态修改符号表 Linux上的elf格式 我的最终目标如下 在某些函数里面说foo 我想覆盖malloc函数到我的自定义处理程序my malloc 但在外面foo any malloc仍应像 glibc 中那样调用 mal
  • 系统时间与 apache 时间戳不同--?

    我在开发服务器上 当我在 php 中执行此操作时 echo date r time 回复 2010 年 6 月 1 日 星期二 18 10 32 0400 但是 我的计算机时间是 17 10 32 即时时间为 GMT 5 我在哪里配置 ap
  • 是否可以仅更改文本阴影的颜色?

    我有 9 个不同颜色的按钮 红色 橙色 黄色 绿色 蓝色 紫色 粉色 灰白色和石板色 我想知道是否可以仅操纵和更改按钮的颜色text shadow这些按钮的 CSS 属性 同时保持其他值相同 例如 我有两个不同的班级 一个用于 11px 字
  • pandas 返回未命名的列

    以下是我在 Excel 工作表中的数据示例 A B C 1 2 3 4 5 6 我正在尝试使用以下代码获取列名称 p1 list df1t columns values 输出是这样的 A B C Unnamed 3 unnamed 4 un
  • 如何打印包含值的列

    假设我有一个包含以下内容的数据文件 1 2 3 4 5 67 88 12 32 22 9 99 34 59 86 17 0 78 0 77 11 0 0 0 43 我想要一个在每一列中搜索数字 0 的代码 如果找到数字 0 代码将在单独的文
  • 如何使 XmlnsDefinition 在本地程序集上工作?

    我开始使用 XmlnsDefinition 属性将一些 CLR 命名空间绑定到单个 xmlns 中 以便在 XAML 中使用 不幸的是 这似乎只在使用外部程序集时才有效 如果我在与我从 XmlnsDefinition 引用的命名空间中的类型
  • 似乎无法使用 Expo 的 Font.loadAsync 加载自定义字体

    我正在将 React Native 与 Expo 结合使用 除了自定义字体的问题之外 一切都很顺利 我有我的字体Lobster Regular ttf在 assets fonts 中 我一直在尝试加载它 如官方文档中所示 component
  • Android 风格微调器

    我正在努力让我的 Android 应用程序变得更时尚 并取得了一些进展 但旋转下拉菜单给我带来了麻烦 我有一个屏幕截图来向您展示问题 我想要的是背景中的白色框是透明的 就像在后屏幕上与下拉菜单之外的屏幕其余部分一样的灰色覆盖层中 如果我没记
  • kubernetes cronjob 并更新秘密

    下面是我的 python 脚本 用于更新密钥 以便我可以使用 kubectl 部署到 kubernetes 所以它工作得很好 但我想创建一个 kubernetes cron 作业 它将运行 docker 容器来更新 kubernetes 集
  • 无法在 Javadoc 注释中链接到 JDK10

    从 Java 9 升级到 10 后 使用 Javadoc 工具生成文档时 例如 对于导入文件 指向 JDK 的链接不再起作用java util Optional link Optional 呈现为Optional而不是作为Optional
  • 带有layout_width=matchparent 的TableLayout 不匹配父级

    我有一个包含两列和两行的 tableLayout 两行和最后一列的宽度都有 match parent 但布局没有填充父宽度 它的表现就像有 wrap content 一样 这是代码
  • Keras + TensorFlow:“模块‘tensorflow’没有属性‘merge_all_summaries’”

    非常类似于Keras tensorflow 给出错误 no attribute control flow ops https stackoverflow com questions 40046619 keras tensorflow giv
  • 如何扩展文本区域以垂直和水平适应文本?

    我怎样才能使用 html css 和 jquery 来做这样的事情 我发现这个问题根据内容长度调整文本区域大小 https stackoverflow com questions 995168 textarea to resize base
  • getMapAsync 错误 - Google 地图 api android

    因此 我尝试从 Json 文件在地图上显示标记 但它们没有出现 我已将其范围缩小到该行 map mapFragment getMapAsync this 它给了我错误 不兼容的类型 必需 com google android gms map
  • 在 Mac OS X 上使用 PCL(点云库)生成项目

    我按照其建议安装了所有依赖项和预编译的 PCL 库site http pointclouds org downloads macosx html 安装完所有内容后 我想生成一个项目如下this http pointclouds org do