在另一个项目 Visual Studio 中使用来自一个项目的目标文件

Posted

技术标签:

【中文标题】在另一个项目 Visual Studio 中使用来自一个项目的目标文件【英文标题】:use object files from one project in another project visual studio 【发布时间】:2013-06-25 19:40:57 【问题描述】:

考虑具有多个项目的 Visual Studio 解决方案,一些源文件在多个项目中使用。 我目前在每个项目中包含多个项目中使用的源文件,但这会导致为每个项目编译相同的源文件。有没有办法将单个项目指定为构建文件的项目,并链接到所有其他项目中的构建对象。

我知道创建静态库的选项,但我想知道是否可以在解决方案中直接指定项目之间的依赖关系 - 就像您可以通过编写 makefile 来做到的那样。

从 2010 年开始,搜索已显示有关该主题的单个问题,但那里没有合适的解决方案: How to use the same obj files in different projects in the same solution

【问题讨论】:

【参考方案1】:

您可以指定项目依赖项 (http://msdn.microsoft.com/en-us/library/et61xzb3(v=vs.80).aspx),但为了在项目之间使用相同的源,您需要创建一个静态库或 dll 并与之链接。您也可以在项目设置中设置这些配置,这样您就不会有显示链接的代码,这一切都在编译/链接语句中完成

【讨论】:

【参考方案2】:

您可能会考虑创建一个解决方案,其中您有多个项目,并正确设置每个项目的building dependency,以便“基础项目”始终在其他项目之前构建,具体取决于它的构建。

【讨论】:

【参考方案3】:

正如你提到的静态库是最好的项目类型。将所有公共文件分组到一个静态库项目中,并在您的 DLL 或 exe 项目上使用“添加依赖项”选项创建对库的依赖项,您应该在 VS 解决方案资源管理器窗格中右键单击您的项目。

注意一件事:如果你在 Libs 之间创建一个级联的依赖关系,它们会变得越来越大(链的最后一个 lib 将包含所有其他的符号......一种 . obj 文件....)

【讨论】:

以上是关于在另一个项目 Visual Studio 中使用来自一个项目的目标文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在另一个(客户端)系统上部署 Visual Studio“sql server 数据库项目”?

如何在 Visual Studio 2010 中部署基于 OpenCV 的独立项目?

如何在 Visual Studio C++ 的 dll 项目中包含一个库

将 .lib 库链接到 Visual Studio 中的项目

Visual Studio 负载测试 - 每次唯一的数据

Mercurial Add On for Visual Studio不显示1个特定项目的图标