欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

VLFeat开源库介绍及在VS2013中的编译

发布时间:2023/11/27 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 VLFeat开源库介绍及在VS2013中的编译 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

VLFeat是一个开源的计算机视觉算法库,内容主要包括feature detectors、feature extractors、k-means clustering、randomized kd-tree matching、super-pixelization。它是跨平台的,能够应用在Linux、Mac、Windows平台。它的License是BSD。

  在VS2013中编译VLFeat源码操作步骤:

1.      从http://www.vlfeat.org/ 下载源码(或从https://github.com/vlfeat/vlfeat下载),最新版本为0.9.20;

2.      打开VS2013 x64本机工具命令提示,在命令行中输入:$ nmake version,如下图:

3.      在make/nmake_helper.mak文件中加入vs2013参数,如下图:

4.      将VS2013 x64本机工具命令提示定位到/vlfeat-0.9.20目录下,输入:

 

$ nmake /f Makefile.mak

 

5.      运行完上面的语句后,将会在/vlfeat-0.9.20/bin目录下,新增一个win64目录,里面会有生成的vl.dll、vl.lib和一些test执行文件;

6.      按照上面的步骤虽然生成了vlfeat动态库,但是不便于调试,下面新建一个控制台工程VLFeat_DLL,将/vlfeat-0.9.20/vl目录中的文件加入到VLFeat_DLL工程中;

7.      将VLFeat_DLL工程,配置属性中的配置类型由应用程序(.exe)改为动态库(.dll);字符集由使用Unicode字符集改为使用多字节字符集;

8.      遇到的问题及处理方法:

(1)、error C2491,不允许dllimport函数的定义:将宏VL_BUILD_DLL加入到预处理器定义中;

(2)、error C4996:将宏_CRT_SECURE_NO_WARNINGS加入到预处理器定义中;

(3)、三个类似的错误,fatal error C1189: #error : "Compiling with SSE2 enabled, …”:分别将三个宏 __SSE2__、_SSE2_、__AVX__加入到预处理器定义中;

(4)、六个类似的错误,error C4146 一元负运算符应用于无符号类型,结果仍为无符号类型:将C/C++--> 常规--> SDL检查改为否(/sdl-)。

9.      重新编译整个工程即可生成VLFeat_DLL.dll;

10.    验证VLFeat_DLL.dll动态库的正确性:新添加一个Test_VLFeat控制台工程,测试代码及结果图如下:

 

#include <iostream>
#include <generic.h>int main()
{VL_PRINT("Hello world!\n");std::cout << "ok!" << std::endl;return 0;
}

 

GitHub:https://github.com/fengbingchun/VLFeat-VS2013

 

总结

以上是生活随笔为你收集整理的VLFeat开源库介绍及在VS2013中的编译的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。

欢迎分享!

转载请说明来源于"生活随笔",并保留原作者的名字。

本文地址:VLFeat开源库介绍及在VS2013中的编译