Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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中的多个依赖本机项目_C++_Visual Studio 2012_Native_Project Management - Fatal编程技术网

C++ visual studio中的多个依赖本机项目

C++ visual studio中的多个依赖本机项目,c++,visual-studio-2012,native,project-management,C++,Visual Studio 2012,Native,Project Management,Visual studio不支持本机项目,因为它支持.NET项目。例如,在创建静态(.lib)库时。必须手动完成静态库和包含头的目录的创建 对于一个项目来说,这不是什么大问题。但如果你像我一样管理几个项目。其中很多都有些依赖。管理所有这些都会成为一个巨大的麻烦 我想知道是否有任何官方的“微软批准”的方法来解决这个问题。如果没有,处理这种情况的最佳方法是什么。假设出现以下情况: 几个静态库(.lib)项目。这包括在几个解决方案中 几个动态库(.dll)项目。这包括在几个解决方案中 在一个解决方案

Visual studio不支持本机项目,因为它支持.NET项目。例如,在创建静态(
.lib
)库时。必须手动完成静态库和包含头的目录的创建

对于一个项目来说,这不是什么大问题。但如果你像我一样管理几个项目。其中很多都有些依赖。管理所有这些都会成为一个巨大的麻烦

我想知道是否有任何官方的“微软批准”的方法来解决这个问题。如果没有,处理这种情况的最佳方法是什么。假设出现以下情况:

  • 几个静态库(
    .lib
    )项目。这包括在几个解决方案中
  • 几个动态库(
    .dll
    )项目。这包括在几个解决方案中
  • 在一个解决方案中使用相同库(动态和静态)的多个应用程序

    • 我个人对这个问题的解决方案如下

      每个生成二进制文件的项目都将生成以下内容:

      $(SolutionDir)build\$(Configuration)\`
      
      $(SolutionDir)build\$(Configuration)\Libraries\
      
      生成静态库的每个项目都将生成:

      $(SolutionDir)build\$(Configuration)\`
      
      $(SolutionDir)build\$(Configuration)\Libraries\
      
      所有项目的中间目录为:

      $(SolutionDir)build\$(ProjectName)\$(Configuration)\
      
      并运行以下预生成命令:

      Copy /Y "$(ProjectDir)*.h" + "$(ProjectDir)*.hpp"     "$(SolutionDir)build\$(Configuration)\Libraries\" 
      
      该系统的优点包括:

      • 所有项目目录都没有生成(在使用源代码管理时很有用)。所有的二进制文件都在一个地方

      • 在同一解决方案中使用其他项目的输出时,不需要设置其他包含目录。根本不需要添加动态库。而包含静态库所需的全部工作就是将其添加到下面的
        附加依赖项
        字段:

        配置属性->链接器->输入

      该系统的缺点包括:

      • 由于复制了所有头文件,因此存在意外编辑这些头文件的风险。当复制再次发生时,会导致工作损失

      • 由于设置是针对每个项目的,因此必须针对每个项目进行设置

      • 库是为每个解决方案分别构建的