C 在VisualStudio的其他几个项目中使用公共项目

C 在VisualStudio的其他几个项目中使用公共项目,c,visual-studio,visual-studio-2013,C,Visual Studio,Visual Studio 2013,我正在C中的VS 2013上从事一个多解决方案项目(我必须使用C)。我实现了一个“Common”项目,我打算在另一个项目中用作参考。因此,我有一个解决方案,其中包含一个common.h和一个匹配的common.c源代码,我在其中实现了所有常用函数 我现在创建了一个新的“应用程序”项目(在当前项目中,因此我现在有两个解决方案),它可以做很多事情,并使用已在common.c文件(即“common”解决方案)中实现的函数。因此,我有一个app.h文件,其中包含一个匹配的app.c源代码。我更改了设置,

我正在
C
中的
VS 2013
上从事一个
多解决方案项目
(我必须使用
C
)。我实现了一个
“Common”
项目,我打算在另一个项目中用作参考。因此,我有一个解决方案,其中包含一个
common.h
和一个匹配的
common.c
源代码,我在其中实现了所有常用函数

我现在创建了一个新的
“应用程序”
项目(在当前项目中,因此我现在有两个解决方案),它可以做很多事情,并使用已在
common.c
文件(即
“common”
解决方案)中实现的函数。因此,我有一个
app.h
文件,其中包含一个匹配的
app.c
源代码。我更改了设置,以便
“应用程序”
项目将包括
“通用”
项目

但是,当我运行
“应用程序”
解决方案时(由于
“Common”
项目仅用作引用,而没有主函数),我收到一个错误,告诉我没有引用
Common.h
中的函数

我在网上寻找解决方案,有人说我应该把
common.c
复制到我的
“Application”
项目中,但是这对我来说是一个非常糟糕的解决方案,因为我希望有多个应用程序,它们都使用
“common”
项目


我该怎么解决呢?

你不应该复制任何文件来实现这一点。右键单击“解决方案资源管理器”窗口顶部的解决方案。从关联菜单中选择“添加->现有项目”。查找“通用”项目的项目文件。它应该显示在解决方案的项目列表中

右键单击解决方案资源管理器中的“应用程序”项目,然后从关联菜单中选择“属性”。在“属性页”窗口中,转到“公共属性”。单击“添加新引用…”按钮。在“添加参考”窗口中,转到“解决方案”选项卡,然后单击“常用”项目的复选框。单击“确定”

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

上述方法假定公共项目的输出是DLL。Visual Studio(无论出于何种原因)不会自动复制静态链接库(.lib)文件。当然,您可以针对它们进行链接,但添加引用将不起作用。您需要转到“应用程序”项目的属性页,转到链接器->输入选项卡,然后编辑附加依赖项行。您还可以将包含
common.h
的目录添加到C/C++选项卡下的其他包含目录中


不管怎样,我的观点是,除非您使用源代码管理中的模块(例如Git模块或SVN externals)来管理依赖关系,否则仅仅复制文件是一个坏主意。

为什么您在这篇文章中围绕非代码的内容添加代码格式?非常感谢!很好的回答