搭建可随意更改路径的VS工程-以ASIFT算法为例

来源:互联网 发布:时时彩的的网络女孩 编辑:程序博客网 时间:2024/06/09 23:53

在前一篇的博文中,笔者介绍了如何利用Guoshen Yu和Jean-Michel Morel提出的ASIFT算法的windows下C++版本源码来构建工程,具体见链接:http://blog.csdn.net/zz420521/article/details/63686163

但实际上,虽然工程是跑通了,但是里面还包含了许多我们不熟悉的或者不需要的东西,尤其是一些路径设置的问题,对工程里面的设置不是很清楚。所以,笔者自己重新建立了一个新的空的工程,然后依次将所需要的文件添加到工程里面,不需要的内容排除掉,这样一来,新的ASIFT工程的结构和内容都比较清晰,方便大家阅读理解。

同时,笔者在配置的过程中,全部都采用相对路径设置,这样就可以随意更改工程的路径,而不需要重新设置。由于笔者最开始对VS配置工程还不是很熟悉,所以才写下这篇博文。如果读者对配置VS工程很熟悉的话,可以略过不看。同时,本文还附带了一些笔者的思考,欢迎留言交流。

下面笔者将其实现过程进行介绍:

一、环境为VS2012,WIN7 64位

二、新建空的工程,设置好工程放置路径:E:\VS_projects\ASIFT以及工程名ASIFT.sln。并将解决方案平台换成x64,换的方法请参照前一篇博文。


三、将所需要的source源文件、head头文件、include包含文件(工程中要添加的外部依赖项文件)、lib文件、dll文件在工程的一级目录下建立,内容均从前一篇博文里面已经生成好的demo_asift工程下里面拷贝过来,不需要的不用拷贝。


四、打开ASIFT.sln,按下面的方式添加源文件和头文件,结果如下:


五、设置三个路径:包含目录、库目录、附加依赖项

包含目录:项目--属性--VC++目录--包含目录,里面添加include、source、head三个文件夹的文件路径,用相对路径..\表示。

库目录:项目--属性--VC++目录--库目录,里面添加lib文件夹下的文件路径,现在是debug模式,故添加debug下的lib文件,

用相对路径..\表示。

附加依赖项:项目--属性--链接器--输入--附加依赖项,里面添加lib文件夹下的文件名称。

注意,这个工程不涉及dll的设置,如果有的工程需要设置dll路径,有三种方法供大家尝试,第一,将dll拷贝到

c:/windows/system32下面,第二,将dll拷贝到工程的debug目录下面,第三,在工程一级目录下建立dll文件夹,然后将dll

文件拷入,并在项目--属性--调试--环境,中添加该dll文件夹目录。




六、转到debug模式下,按F7生成解决方案,里面会涉及到一些细节的#include问题,把路径修改好即可。

继续F7生成解决方案,会出现如下错误:


这是在main中找到read_png_f32_gray函数,F12后发现只能找到函数声明,找不到实现函数,这可能由两种情况导致:

1.*.lib未添加到库中。

2.对应.c文件或.h文件未从外部依赖项中加载。

通过检查,png.lib确实已经添加了,然后将io_png.c文件按照第四步的方法加载到工程源文件中,再F7,运行成功,最终结果如下:


0 0
原创粉丝点击