在 visual studio 中的其他几个项目中使用一个公共项目

Using a common project in several other projects in visual studio

我正在 CVS 2013multi-solution project 上工作(我必须为这个项目使用 C)。我实施了一个 "Common" 项目,我打算在另一个项目中用作参考。所以我有一个带有 common.h 和匹配的 common.c 源的解决方案,我在其中实现了所有常用功能。

我现在创建了一个新的 "Application" 项目(在当前项目中,所以我现在有 2 个解决方案),它可以做很多事情,并使用 common.c 文件中已经实现的功能(即在 "Common" 解决方案中)。所以我有一个 app.h 文件和匹配的 app.c 源。我更改了设置,以便 "Application" 项目将包含 "Common" 项目。

但是,当我 运行 "Application" 解决方案时(只有它,因为 "Common" 项目仅用作没有主要功能的参考)我收到一条错误消息告诉我没有引用 common.h.

中的函数

我在网上寻找解决方案,有人说我应该将 common.c 复制到我的 "Application" 项目中,但这对我来说是一个非常糟糕的解决方案,因为我想要有多个应用程序他们都使用 "Common" 项目。

我该如何解决?

您无需复制任何文件即可完成这项工作。在解决方案资源管理器 window 顶部右键单击您的解决方案。从上下文菜单中选择添加 -> 现有项目。找到您的 "Common" 项目的项目文件。它应该显示在您的解决方案的项目列表中。

在解决方案资源管理器中右键单击您的 "Application" 项目,然后从上下文菜单中选择 "Properties"。在 属性 页 window 中,转到 "Common Properties"。单击 "Add New Reference..." 按钮。在 "Add Reference" window 中,转到 "Solution" 选项卡,然后单击 "Common" 项目的复选框。单击 "Ok"。

现在您的 "Application" 项目引用了您的 "Common" 项目。您还可以从新解决方案中打开 common.ccommon.h,任何更改都将自动应用于引用它的所有其他解决方案,因为它们是原始文件,而不仅仅是副本。

上述方法假定您的 Common 项目的输出是一个 DLL。 Visual Studio(无论出于何种原因)不会自动静态复制 linked 库 (.lib) 文件。您当然可以 link 反对他们,但是添加引用是行不通的。您需要转到 "Application" 项目的属性页面,转到 linker -> 输入选项卡,然后编辑 Additional Dependencies 行。您还可以将包含 common.h 的目录添加到 C/C++ 选项卡下的附加包含目录。

无论哪种方式,我的观点是仅仅复制文件不是一个好主意,除非您在源代码管理中使用模块(例如 Git 模块或 SVN 外部)来管理依赖项。