Win10系统VS2019+Cmake+flann_1.9.1环境配置

1 flann

1.1 简要介绍

flann库全称是Fast Library for Approximate Nearest Neighbours,它是目前最完整的(近似)最近邻开源库。不但实现了一系列查找算法,还包含了一种自动选择最快算法的机制。

1.2 依赖库

flann不需要再配置其他库。

1.3 源码包下载

flann源码地址:
githubhttps://github.com/flann-lib/flann.git

2 Cmake构建项目

2.1 路径

源代码路径:D:/ThirdParty/flann/flann_1.9.1
构建项目路径:D:/ThirdParty/flann/flann_1.9.1_build

2.2 构建选项

名称备注
BUILD_TESTSfalse
BUILD_MATLAB_BINDINGSfalse
BUILD_PYTHON_BINDINGSfalse
CMAKE_INSTALL_PREFIXpath编译时生成的安装文件路径
CMAKE_DEBUG_POSTFIX-gddebug版本库名称后缀

注:flann默认情况下会动态库和静态库都会生成。
库名称中,含有s的是静态库,含有gd的是debug版本库。

2.3 构建项目

image.png
步骤如下:

  1. 指定源码路径;
  2. 指定构建项目路径;
  3. 点击Configure
  4. 按照2.2节表中的值进行设置;
  5. 再次点击Configure
  6. 点击Generate,构建项目路径中将生成解决方案文件flann.sln

点击ConfigureGenerate后,如果顺利,会出现Configuring doneGenerating done

3 打开解决方案并编译

3.1 编译解决方案

点击Open Project(或者在2.3节步骤2中指定的构建项目路径中,找到生成的解决方案文件flann.sln,通过Visual Studio打开),打开通过Cmake构建的项目;
选中ALL_BUILD项目,分别在DebugRelease模式下,重新生成解决方案。
image.png

3.2 安装flann

image.png
选中INSTALL项目,右击,重新生成,此时,将会在指定路径下(2.2节表中CMAKE_INSTALL_PREFIX选项的值)主要生成3个文件夹includelibbin

4 实际项目环境配置

注:以下通过属性表的方式进行环境配置。

4.1 附加包含目录

image.png

  1. $(flann)\include

$(flann)(在系统环境变量中添加并设置)就是2.2节表中CMAKE_INSTALL_PREFIX选项的值。

4.2 附加库目录

image.png

  1. $(flann)\lib

4.3 附加依赖项

image.png

  1. flann-gd.libflann.lib

将库目录$(flann)\lib中文件后缀名为.lib的文件依次添加至附加依赖项中,并依次配置debug版本(文件名中有gd)和release版本。

注意,添加附加依赖项时,不要漏掉文件后缀名.lib

4.4 动态库

将动态库目录添加至系统环境变量Path,步骤如下:

  1. 计算机右击,点击“属性”;
  2. 点击“高级系统设置”;
  3. 点击“环境变量”;
  4. 双击Path
  5. 添加%flann%\bin,该目录下是包含了动态库文件。

image.png
image.png

本文使用的都是相对路径,因此需事先设置好环境变量flann,值为CMAKE_INSTALL_PREFIX对应的目录,也可以使用绝对路径。

image.png

注:上述步骤是按照加载flann动态库的方式进行配置的;
当然也可以按照静态库的方式配置,可省略步骤4.4

4.5 测试代码

#pragma warning(disable:4996)
//typedef unsigned long long pop_t;
#include <flann/flann.hpp>
#include <iostream>
int main()
{
	int i_array[6] = { 1,2,3,4,5,6 };
	flann::Matrix<int> fmatrix(i_array, 2, 3);
	for (int row = 0; row < 2; ++row) {
		for (int col = 0; col < 3; ++col) {
			std::cout << fmatrix[row][col] << " ";
		}
		std::cout << std::endl;
	}	
	std::system("pause");
	return 0;
}

注意:flann库中的头文件dist.h有点问题,当使用Visual Studio自带的编译器编译用户程序过程中,会出现pop_t未声明的标识符或pop_t找不到标识符的错误,解决方案如下:
打开dist.h头文件,在报错的地方添加typedef unsigned long long pop_t;语句,如图:
image.png

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值