Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 具有多个属性页的Visual Studio 2013项目_C++_Visual Studio_Visual Studio 2013 - Fatal编程技术网

C++ 具有多个属性页的Visual Studio 2013项目

C++ 具有多个属性页的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文件添加到项目中 当我试图在“属性管理器”中向属性配置添加多个属性表时,我当前的问题就出现了。对于每个属性表,我都单击“添加现有属性表”,瞧!我应该得到正确的设置。当我只使

我正在Windows 10上使用Visual Studio 2013进行一个项目。基本上我用C++编写了几个MEX文件,我使用了一些我经常使用的库:OpenCV和Matlab的外部库。对于每个库,我都保存了包含所有必要信息的属性表(.props文件)。其要点是,我正在尝试将opencv.props文件和matlab.props文件添加到项目中

当我试图在“属性管理器”中向属性配置添加多个属性表时,我当前的问题就出现了。对于每个属性表,我都单击“添加现有属性表”,瞧!我应该得到正确的设置。当我只使用一个属性表时,一切正常。当我尝试添加多个工作表时,似乎只有最近添加的工作表正在注册

知道我哪里出错了吗

我已将.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>