码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-02-05 19:29:02      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:

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;
}
技术分享

工程代码:https://github.com/fengbingchun/VLFeat-VS2013 

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

标签:

原文地址:http://blog.csdn.net/fengbingchun/article/details/50638391

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!