在 visual studio 中的其他几个项目中使用一个公共项目
Using a common project in several other projects in visual studio
我正在 C
中 VS 2013
的 multi-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.c
和 common.h
,任何更改都将自动应用于引用它的所有其他解决方案,因为它们是原始文件,而不仅仅是副本。
上述方法假定您的 Common 项目的输出是一个 DLL。 Visual Studio(无论出于何种原因)不会自动静态复制 linked 库 (.lib) 文件。您当然可以 link 反对他们,但是添加引用是行不通的。您需要转到 "Application" 项目的属性页面,转到 linker -> 输入选项卡,然后编辑 Additional Dependencies 行。您还可以将包含 common.h
的目录添加到 C/C++ 选项卡下的附加包含目录。
无论哪种方式,我的观点是仅仅复制文件不是一个好主意,除非您在源代码管理中使用模块(例如 Git 模块或 SVN 外部)来管理依赖项。
我正在 C
中 VS 2013
的 multi-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.c
和 common.h
,任何更改都将自动应用于引用它的所有其他解决方案,因为它们是原始文件,而不仅仅是副本。
上述方法假定您的 Common 项目的输出是一个 DLL。 Visual Studio(无论出于何种原因)不会自动静态复制 linked 库 (.lib) 文件。您当然可以 link 反对他们,但是添加引用是行不通的。您需要转到 "Application" 项目的属性页面,转到 linker -> 输入选项卡,然后编辑 Additional Dependencies 行。您还可以将包含 common.h
的目录添加到 C/C++ 选项卡下的附加包含目录。
无论哪种方式,我的观点是仅仅复制文件不是一个好主意,除非您在源代码管理中使用模块(例如 Git 模块或 SVN 外部)来管理依赖项。