在程序开发中,很多时候需要用到别人开发的工具包,如OpenCV和itk。一般而言,在vs2008中,很少使用源文件,大部分是使用对类进行声明的头文件和封装了类的链接库(静态lib或动态dll)。
如果要使用这些类,需要在文件中包含头文件的名字,如#include “cv.h”。但这个并不够,因为这个文件一般来说不在当前目录下,有两种方法解决这个问题。一,将所包含的头文件复制到当前目录(另一篇文章有写)下,这个比较有局限性,因为如果头文件太多,这样比较麻烦。二,将头文件所在的路径包括进去,即添加包含(include)文件目录。两种方法:A.依次打开“项目——属性——配置属性——C++——常规——附加包含目录”中加入所有的路径。这里需要注意的是(1)路径必须指向头文件所在的子文件夹,而不能直到父文件夹就结束(2)每个路径不需要加上双引号,输入了之后,vs2008会自动加上双引号,如果自己加可能vs2008无法识别双引号(3)如果是多个路径,路径直接用“;”隔开。B.[菜单]“工具->选项->项目和解决方案->C++ 目录”,选择对应平台,然后添加所需“包括文件”目录。
除了头文件以外,也需要告诉编译器,类在哪里实现的,即封装类的链接库在哪里,这样程序才能执行工具包中的函数。
首先需要将链接库的路径输入vs2008,即添加库(libs)文件目录。两种方法:A.依次打开“项目——属性——配置属性——链接器——常规——附加库目录”中加入链接库的路径。B.[菜单]“工具->选项->项目和解决方案->C++ 目录”,选择对应平台。
然后添加所需“库文件”目录,即添加编译所需要(依赖)的 lib 文件 。在“项目——属性——配置属性——链接器——常规——输入——附加依赖项”中加入链接库的名字,多个lib用空格隔开。(等同于“#pragma comment(lib, “xxx.lib”) ”语句)。
比如itk工具包在vs2008中配置。itk首先CMake一下,然后编译,最后还要编译Install。网上有很多文章给了一些配置的路径什么的,特别是附加包含目录,我觉得没有说清楚。很多时候照搬或是稍微改动是不太正确的,因为每个人的安装路径不一样,更主要的是CMake的时候每个人选择的选项不一样,产生的h文件有多有少等等,所以这里附加包含目录只要把你所有生成的h文件的路径输入就好,一般而言在CMake输入的install的路径下会有一个include文件夹,h文件都在里面,把路径逐一输入即可。而库文件目录是CMake输入的install的路径下会有一个lib文件夹,lib文件都在这个文件夹下面。再添加编译所需要(依赖)的 lib 文件,这样就配置完成了。具体使用的时候如果要用哪个函数,就把声明这个函数的头文件在cpp文件中加入即可,如加上#include “itkImage.h”。