【发布时间】:2016-01-19 00:06:37
【问题描述】:
我正在使用 Windows 10 上的 Visual Studio 2013 开发一个项目。基本上我正在使用 C++ 编写一些 MEX 文件,并且我正在使用一些我经常使用的库:OpenCV 和 MATLAB 的外部库。对于每个库,我都保存了包含所有必要信息的属性表(.props 文件)。它的要点是我正在尝试将我的 opencv.props 文件和我的 matlab.props 文件添加到项目中。
当我尝试将多个属性表添加到“属性管理器”中的属性配置时,出现了我当前的问题。对于每个,我单击“添加现有属性表”,瞧!我应该得到正确的设置。当我只使用一个属性表时,一切正常。当我尝试添加多张工作表时,似乎只有最近添加的内容正在注册。
知道我哪里出错了吗?
我已将 .props 文件的内容粘贴在下面,因为它们都非常简短:
matlab.props
<?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 />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(MATLAB_DIR)\extern\include</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
opencv.props
<?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>
【问题讨论】:
-
您的属性表具有相同设置的竞争条目。可以在每个属性表中设置某些属性(例如附加库引用),而其他属性(例如字符集)则不能。仅指定特定于各个库的属性。
-
@IInspectable:谢谢!这就说得通了。我已将道具表添加到问题中。您能否快速浏览一下并告诉我哪些领域正在竞争(它们都很短)?在每种情况下,它只是设置了额外的库引用
-
嗯,显然
<AdditionalIncludeDirectories>在文件之间竞争,但我怎样才能避免这种情况呢? -
未来的读者可能会发现这是一个有用的模板:github.com/chappjc/MATLAB/blob/master/propertySheets/…
标签: c++ visual-studio visual-studio-2013