visual studio 中的多个依赖本机项目
Multiple dependent native projects in visual studio
Visual studio 不支持本机项目,因为它支持 .NET 项目。在某种意义上,例如创建静态(.lib
)库时。包括静态库和包含 headers 的目录,必须手动完成。
对于一个项目来说,这不是什么大问题。但如果你像我一样管理多个项目。其中很多都有些依赖。管理所有这些变得非常麻烦。
我想知道是否有官方 'microsoft approved' 方法来解决这个问题。如果没有,处理这种情况的最佳方法是什么。假设出现以下情况:
- 几个静态库(
.lib
)项目。包含在几个解决方案中
- 几个动态库 (
.dll
) 项目。包含在几个解决方案中
- 在一个解决方案中使用相同库(动态和静态)的多个应用程序
我个人的解决方法如下。
每个生成二进制文件的项目都构建为:
$(SolutionDir)build$(Configuration)\`
生成静态库的每个项目都构建为:
$(SolutionDir)build$(Configuration)\Libraries\
所有项目的中间目录是:
$(SolutionDir)build$(ProjectName)$(Configuration)\
并运行以下预构建命令:
Copy /Y "$(ProjectDir)*.h" + "$(ProjectDir)*.hpp" "$(SolutionDir)build$(Configuration)\Libraries\"
该系统的优点包括:
所有项目目录都没有构建(在使用源代码管理时很有用)。所有二进制文件都在一个地方。
在同一解决方案中使用来自其他项目的输出时,永远不需要设置额外的包含目录。根本不需要添加动态库。包含静态库所需要做的就是将其添加到下面的 Additional Dependencies
字段中:
Configuration Properties->Linker->Input
该系统的缺点包括:
由于复制了所有头文件,因此存在意外编辑这些头文件的风险。当再次复制时,这会导致工作丢失。
由于设置是针对每个项目的,因此必须对每个项目进行设置
库是为每个解决方案单独构建的
Visual studio 不支持本机项目,因为它支持 .NET 项目。在某种意义上,例如创建静态(.lib
)库时。包括静态库和包含 headers 的目录,必须手动完成。
对于一个项目来说,这不是什么大问题。但如果你像我一样管理多个项目。其中很多都有些依赖。管理所有这些变得非常麻烦。
我想知道是否有官方 'microsoft approved' 方法来解决这个问题。如果没有,处理这种情况的最佳方法是什么。假设出现以下情况:
- 几个静态库(
.lib
)项目。包含在几个解决方案中 - 几个动态库 (
.dll
) 项目。包含在几个解决方案中 - 在一个解决方案中使用相同库(动态和静态)的多个应用程序
我个人的解决方法如下。
每个生成二进制文件的项目都构建为:
$(SolutionDir)build$(Configuration)\`
生成静态库的每个项目都构建为:
$(SolutionDir)build$(Configuration)\Libraries\
所有项目的中间目录是:
$(SolutionDir)build$(ProjectName)$(Configuration)\
并运行以下预构建命令:
Copy /Y "$(ProjectDir)*.h" + "$(ProjectDir)*.hpp" "$(SolutionDir)build$(Configuration)\Libraries\"
该系统的优点包括:
所有项目目录都没有构建(在使用源代码管理时很有用)。所有二进制文件都在一个地方。
在同一解决方案中使用来自其他项目的输出时,永远不需要设置额外的包含目录。根本不需要添加动态库。包含静态库所需要做的就是将其添加到下面的
Additional Dependencies
字段中:Configuration Properties->Linker->Input
该系统的缺点包括:
由于复制了所有头文件,因此存在意外编辑这些头文件的风险。当再次复制时,这会导致工作丢失。
由于设置是针对每个项目的,因此必须对每个项目进行设置
库是为每个解决方案单独构建的