VS使用第三方库
项目设置
调整头文件引用目录
C/C++ -> General -> Additional Include Directories
添加库文件目录
Linker -> General -> Additional Library
添加具体的lib文件(处在上述库文件目录下)
Linker -> Input -> Additional dependencies
添加DLL的索引
有些第三方库使用动态链接库的形式(lib+dll)。
方法一:将dll所在的目录添加到系统path。但会有潜在冲突的风险(同名,但是版本、内容不同);
方法二:直接拷贝到 Visual Studio 的exe所在目录下。假如工程较多,每次有新版本的动态链接库更新时,你需要更新若干次,拷贝、粘贴苦不堪言。
方法三:
Visual Studio 菜单 ==> 工具 ==> 选项 ==> 项目和解决方案 ==> VC++目录,在下拉框里选择"可执行文件",然后把 dll 所在路径添加进去
或者设置exe的工作目录
Visual Studio ==> Project ==> Properties ==> Select Configuration ==> Configuration Properties ==> Debugging ==> Working directory
附注:
以下两个路径的区别
1. VC++ Directories -> Include Directories
2. C/C++ -> General -> Additional Include Directories
结果相同,只是搜索文件时的时机不同。
Order1:The compiler searches for directories in the following order:
Directories containing the source file;
Order2:Directories specified with the /I option, in the order that CL encounters them;
Order3:Directories specified in the INCLUDE environment variable.
其中Order2中的/I是由C/C++ -> General -> Additional Include Directories设置的。而Order3中的INCLUDE是由VC++ Directories -> Include Directories设置的。
同理
1. VC++ Directories -> LibraryDirectories
2. Linker -> General -> Additional Library Directories
VS使用openCV
需要添加引用的lib文件
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_ml249d.lib
opencv_nonfree249d.lib
opencv_objdetect249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_videostab249d.lib
Qt项目配置使用
qt使用msvc2013的构件套件,所以第三方库(如openCV等)也使用v12版本的lib文件。
VS各版本的对应关系
Visual Studio 2003 : vc7
Visual Studio 2005 : vc8
Visual Studio 2008 : vc9
Visual Studio 2010 : vc10
Visual Studio 2012 : vc11
Visual Studio 2013 : vc12
Visual Studio 2015 : vc14
Qt项目使用pro文件管理项目设置,使用变量赋值的方式
设置引用头文件目录
INCLUDEPATH += D:ProgramopenCV249opencvuildinclude
.
设置库文件目录,参数-L与路径之间没有空格
LIBS += -L"D:ProgramopenCV249opencvuildx64vc12lib"
-lopencv_core249d
qt的读取文件时的相对路径在与debug文件夹、release文件夹并列的文件夹中。
出现link错误,就是lib文件没有应用正确,或者缺少lib文件;