我正在multi-solution project
VS 2013
C
上工作{我必须使用C
来完成此项目。我实现了一个"Common"
项目,我打算将其用作另一个项目的参考。所以我有一个解决方案,其中包含common.h
和匹配的common.c
来源,其中我实现了所有常用功能。
我现在创建了一个新的"Application"
项目(在当前项目中,所以我现在有2个解决方案),它做了很多事情,并使用已经在common.c
文件中实现的功能(在"Common"
解决方案中。所以我有一个app.h
文件,其中包含匹配的app.c
来源。我更改了设置,以便"Application"
项目包含"Common"
项目。
但是,当我运行"Application"
解决方案时(仅因为"Common"
项目仅用作没有main函数的引用)我收到错误告诉我没有引用common.h
中的函数。
我在线寻找解决方案,有人说我应该将common.c
复制到我的"Application"
项目中,但这对我来说是一个非常糟糕的解决方案,因为我希望拥有多个应用程序他们使用"Common"
项目。
我该如何解决?
答案 0 :(得分:0)
您不必复制任何文件即可使其正常工作。右键单击Solution Explorer窗口顶部的解决方案。选择添加 - >上下文菜单中的现有项目。找到“Common”项目的项目文件。它应该显示在您的解决方案的项目列表中。
右键单击解决方案资源管理器中的“应用程序”项目,然后从上下文菜单中选择“属性”。在属性页面窗口中,转到“公共属性”。单击“添加新引用...”按钮。在“添加引用”窗口中,转到“解决方案”选项卡,然后单击“常用”项目的复选框。点击“确定”。
现在您的“应用程序”项目引用了您的“Common”项目。您还可以在新解决方案中打开common.c
和common.h
,并且所有更改都将自动应用于引用它的所有其他解决方案,因为它们是原始文件而不仅仅是副本。
上述方法假定您的Common项目的输出是DLL。 Visual Studio(无论出于何种原因)不会自动复制静态链接库(.lib)文件。您当然可以链接它们,但添加引用将不起作用。您需要转到“应用程序”项目的属性页面,转到链接器 - >输入选项卡,然后编辑Additional Dependencies行。您还可以将包含common.h
的目录添加到C / C ++选项卡下的其他包含目录中。
无论哪种方式,我认为仅仅复制文件是一个坏主意,除非你在源代码控制中使用模块(例如Git模块或SVN外部)来管理依赖项。