文章目录
0 简述
编译好的opencv库(见32位和64位opencv编译)分为Debug(opencv_world400d.lib)和Release (opencv_world400.lib),Debug版本包含一些调试信息,Release版本做了一些性能优化。想要让项目在Debug和Release阶段引用不同的opencv库,需要针对平台和配置,在vs中建立多个配置文件(以64位平台为例,需要为Debug和Release建立两个不同的文件)。配置过程比较繁琐,且配置文件可复用性也不强。因此,一个易维护,自动化程度高的配置文件能够带来很大的便捷性。本文依靠vs属性配置文件的条件判断($(Configuration)|$(Platform)
)和用户定义的宏(UserMacros
)来实现维护和环境配置。
适用于win32和x64平台Debug和Release的单文件配置方法
通过编辑.props属性文件,使用标签条件选择器实现对不同编译环境的判断,实现一个文件配置win32和64位平台的环境。
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"/>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"/>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"/>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"/>
用户定义的宏UserMacros
通过UserMacros
,可以将opencv的多个路径放在属性文件的UserMarcos
标签之中,便于修改和维护。
<PropertyGroup Label="UserMacros">
<OPENCV_INCLUDE>D:\build\opencv400_64\install\include;D:\build\opencv400_64\install\include\opencv2;</OPENCV_INCLUDE>
<OPENCV_LIBRARY_DIR>D:\build\opencv400_64\install\x64\vc15\lib</OPENCV_LIBRARY_DIR>
<OPENCV_LIBRARY_DEBUG>opencv_world400d.lib</OPENCV_LIBRARY_DEBUG>
<OPENCV_LIBRARY_RELEASE>opencv_world400.lib</OPENCV_LIBRARY_RELEASE>
</PropertyGroup>
在属性文件后文中需要用到的地方只需要计算这些宏的值即可
<IncludePath>$(OPENCV_INCLUDE);$(IncludePath)</IncludePath>
<LibraryPath