C++ 具有多个属性页的Visual Studio 2013项目
我正在Windows 10上使用Visual Studio 2013进行一个项目。基本上我用C++编写了几个MEX文件,我使用了一些我经常使用的库:OpenCV和Matlab的外部库。对于每个库,我都保存了包含所有必要信息的属性表(.props文件)。其要点是,我正在尝试将opencv.props文件和matlab.props文件添加到项目中 当我试图在“属性管理器”中向属性配置添加多个属性表时,我当前的问题就出现了。对于每个属性表,我都单击“添加现有属性表”,瞧!我应该得到正确的设置。当我只使用一个属性表时,一切正常。当我尝试添加多个工作表时,似乎只有最近添加的工作表正在注册 知道我哪里出错了吗 我已将.props文件的内容粘贴到下面,因为它们都非常简短: matlab.propsC++ 具有多个属性页的Visual Studio 2013项目,c++,visual-studio,visual-studio-2013,C++,Visual Studio,Visual Studio 2013,我正在Windows 10上使用Visual Studio 2013进行一个项目。基本上我用C++编写了几个MEX文件,我使用了一些我经常使用的库:OpenCV和Matlab的外部库。对于每个库,我都保存了包含所有必要信息的属性表(.props文件)。其要点是,我正在尝试将opencv.props文件和matlab.props文件添加到项目中 当我试图在“属性管理器”中向属性配置添加多个属性表时,我当前的问题就出现了。对于每个属性表,我都单击“添加现有属性表”,瞧!我应该得到正确的设置。当我只使
$(MATLAB\u DIR)\extern\include
opencv.props
OpenCV_调试
$(OPENCV\u DIR)\..\包括
$(OPENCV\u DIR)\lib
opencv_calib3d$(opencv_版本)d.lib;opencv_contrib$(opencv_版本)d.lib;opencv_core$(opencv_版本)d.lib;opencv_功能2d$(opencv_版本)d.lib;opencv_flann$(opencv_版本)d.lib;opencv_gpu$(opencv_版本)d.lib;opencv_highgui$(opencv_版本)d.lib;opencv_imgproc$(opencv_版本)d.lib;opencv_legacy$(opencv_版本)d.lib;opencv_ml$(opencv_版本)d.lib;opencv_nonfree$(opencv_版本)d.lib;opencv_objdetect$(opencv_版本)d.lib;opencv_ocl$(opencv_版本)d.lib;opencv_photo$(opencv_版本)d.lib;opencv_缝合$(opencv_版本)d.lib;opencv_superres$(opencv_版本)d.lib;opencv_ts$(opencv_版本)d.lib;opencv_视频$(opencv_版本)d.lib;opencv\u videostab$(opencv\u版本)d.lib;%(附加依赖项)
通常,属性表中的属性会覆盖以前设置的属性。要保留以前的设置,必须显式添加它们(使用%()宏语法)
例如,在opencv.props文件中,您需要替换
<AdditionalIncludeDirectories>$(MATLAB_DIR)\extern\include</AdditionalIncludeDirectories>
$(MATLAB\u DIR)\extern\include
与
$(MATLAB\u DIR)\extern\include;%(其他包括董事)
对
属性应用相同的更改;
已经正确。您的属性页具有相同设置的竞争条目。某些特性(如附加库引用)可以在每个特性表中设置,而其他特性(如字符集)则不能。仅指定特定于相应库的属性。@IInspectable:谢谢!这是有道理的。我已经在问题中添加了道具表。你能快速看一眼并告诉我哪些领域正在竞争(它们都很短)?在每种情况下,都只需要设置附加的库引用,显然,
会在文件之间竞争,但如何避免这种情况?未来的读者可能会发现这是一个有用的模板:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_PropertySheetDisplayName>OpenCV_debug</_PropertySheetDisplayName>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(OPENCV_DIR)\..\..\include</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(OPENCV_DIR)\lib</AdditionalLibraryDirectories>
<AdditionalDependencies>opencv_calib3d$(OPENCV_VERSION)d.lib;opencv_contrib$(OPENCV_VERSION)d.lib;opencv_core$(OPENCV_VERSION)d.lib;opencv_features2d$(OPENCV_VERSION)d.lib;opencv_flann$(OPENCV_VERSION)d.lib;opencv_gpu$(OPENCV_VERSION)d.lib;opencv_highgui$(OPENCV_VERSION)d.lib;opencv_imgproc$(OPENCV_VERSION)d.lib;opencv_legacy$(OPENCV_VERSION)d.lib;opencv_ml$(OPENCV_VERSION)d.lib;opencv_nonfree$(OPENCV_VERSION)d.lib;opencv_objdetect$(OPENCV_VERSION)d.lib;opencv_ocl$(OPENCV_VERSION)d.lib;opencv_photo$(OPENCV_VERSION)d.lib;opencv_stitching$(OPENCV_VERSION)d.lib;opencv_superres$(OPENCV_VERSION)d.lib;opencv_ts$(OPENCV_VERSION)d.lib;opencv_video$(OPENCV_VERSION)d.lib;opencv_videostab$(OPENCV_VERSION)d.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
<AdditionalIncludeDirectories>$(MATLAB_DIR)\extern\include</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(MATLAB_DIR)\extern\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>