Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Makefiles将PCL(点云库)添加到现有项目_Makefile_Cmake_Point Cloud Library - Fatal编程技术网

使用Makefiles将PCL(点云库)添加到现有项目

使用Makefiles将PCL(点云库)添加到现有项目,makefile,cmake,point-cloud-library,Makefile,Cmake,Point Cloud Library,我对PCL有一个问题:具体地说,我想在现有项目中使用它和现有的makefile。然而,PCL正在使用CMake,我找不到如何将它直接添加到Makefile中。有人知道怎么做吗?首先尝试使用CMake编译PCL网站上提供的示例之一。 编译上述示例后,您将在目录中找到各种新文件和由CMake创建的文件夹 转到cmakfiles/pcl\u visualizer\u demo.dir/。 打开名为link.txt的文件,该文件包含terminal命令,该命令具有各种动态链接到该文件的pcl(点云库)

我对PCL有一个问题:具体地说,我想在现有项目中使用它和现有的makefile。然而,PCL正在使用CMake,我找不到如何将它直接添加到Makefile中。有人知道怎么做吗?

首先尝试使用CMake编译PCL网站上提供的示例之一。

编译上述示例后,您将在目录中找到各种新文件和由CMake创建的文件夹

转到cmakfiles/pcl\u visualizer\u demo.dir/。 打开名为link.txt的文件,该文件包含terminal命令,该命令具有各种动态链接到该文件的pcl(点云库)

命令应类似于下面显示的命令

/usr/bin/c++-O3-Wno不推荐使用-s CMakeFiles/pcl\u visualizer\u demo.dir-o pcl\u visualizer\u demo-rdynamic-lpcl\u common-Wl,-Bstatic-lflann\u cpp\u s-Wl,-b动态-lpcl_kdtree-lpcl_八叉树-lpcl_搜索-lqhull-lpcl_表面-lpcl_样本-共识-lpcl_io-lpcl_过滤器-lpcl_特征-lpcl_关键点-lpcl_注册-lpcl_分割-lpcl_识别-lpcl_可视化-lpcl_人物-lpcl_outofcore-lpcl_跟踪/usr/lib/VTKgenericFiltering.so.5.8.0/usr/lib/VTKGEOVIS.5.8.0/usr/lib/libvtkCharts.so.5.8.0/usr/lib/libvtkViews.so.5.8.0/usr/lib/libvtkInfovis.so.5.8.0/usr/lib/libvtkWidgets.so.5.8.0

您可以直接在Makefile中包含这些库

如果您使用不同的函数或pcl头文件,那么首先尝试使用CMake编译它,并链接库,然后将其添加到上一个项目的Makefile中


我在我的项目中尝试了这种方法,效果非常好。我尝试了
pkg config
来链接这些库,但在我的案例中没有成功。我找不到任何其他方法可以轻松链接所有必需的库

这里有什么问题?如何链接到图书馆?如何自动获取由makefile生成的库?还有什么?是的,如何在Makefile中直接链接PCL。如何链接到给定的库与该库的构建方式无关。您是否只是询问如何向link命令添加正确的标志,以便将二进制文件链接到系统可用的PCL库?请尝试
pkg config——列出所有| less
并查找PCL/PCL/等。?它也可能不在标准位置。但我认为这主要是cmake用来查找库的,所以希望它能正常工作。您需要将
pkg配置--libs pcl_registration-1.7
pkg配置--cflags pcl_registration-1.7
等的输出添加到makefile的编译和链接器标志中。如何在makefile中执行此操作取决于makefile的内容。