VS2019 CCCoreLib源码编译

一、背景

CCCoreLib是开源软件CloudCompare中的算法库,在使用中发现CCCoreLib中的功能貌似比PCL中的效率更高。我曾阅读过二者的部分源代码,在我看来PCL更像一本教科书,算法的实现与原始论文中的描述基本无差,对于了解方法的人很容易阅读,除此以外PCL的代码书写也可以让C++使用者受益良多;而CCCoreLib则做了不少工程优化来提高效率,潜在的缺点是维护人员少,相关开发者少,可能不太适合新手上手。做项目时候也可以对比一下二者的效果,选择更合适的。

二、编译过程记录

不同C++库编译起来其实大差不差,也建议大家跟着做每一步的时候想一下是这步是为了什么,之后也就能举一反三了。

  1. 到github中的CCCorLib仓库clone最新版本的源码

  2. 在指定位置打开命令行工具,输入git clone "复制的地址",并在根目录下创建build文件夹来保存编译结果,结束后文件目录如下

  3. 启动cmake-gui来生成vs解决方案

    • Where is the source code选择有CMakeList的最上层目录
      Where to build the binaries选择刚创建的build文件夹在这里插入图片描述
    • 点击configure,根据自己需要选择编译器以及平台,我的环境是VS2019,然后点击Finish
    • 通常第一次构建都会报错,不需要担心,根据报错信息补全依赖库即可
      1. nanoflann是一个非常经典的项目,用来实现最近邻搜索,是FLANN的轻量化版本。同样,前往其GitHub仓库,按照报错信息将其clone到对应位置即可
      2. 作者使用了Qt来处理多线程,Qt的安装有点麻烦,可以选择不使用它,将CCCORELIB_USE_QT_CONCURRENT取消掉即可
        在这里插入图片描述
    • 记得修改CMAKE_INSTALL_PREFIX,(你也不想都安装到C盘吧
    • 这时候再configure就没啥问题了,然后点击generate
  4. 打开build文件夹下的CCCoreLib.sln,右键ALL_BUILD,点击build
    在这里插入图片描述

  5. 继续改bug

    • Qt相关的bug
      这部分好像是作者没有处理好,既然有不依赖的Qt的选项,那其实不该有这样的错误。但好在你只需要把这些与Qt相关的代码注释掉即可,好像就五六行的样子。
    • ‘SearchParams’: is not a member of ‘nanoflann’
      这个应该也是没有跟nanoflann的版本对应好,新版本中SearchParams已经更改成了SearchParameters,修改过后就可以通过了

三、最后

编译的结果就是如下几个文件

如何配置库我就不多说了,无外乎那几个步骤,配置include路径,配置lib路径,添加附加依赖项,实在不会可以去看我之前配置PCL的文章,就是路径不一样,操作都是一样的。

猜你喜欢

转载自blog.csdn.net/weixin_44368569/article/details/134202361