1

为了能够通过多个应用程序重用代码段,我决定创建我经常需要的函数/类的静态库。因此,我可以更改静态库的代码,并且所有引用该库的应用程序都具有更新的功能。

该架构在概念上如下图所示:

AppA -> LibA
     \
      -> LibCommon -> LibX
     /             -> LibY
AppB

每个应用程序(AppA、AppB)驻留在不同的解决方案中,以使内容清晰分开。

为了在 Visual Studio 2010 中充分发挥作用,我必须在其解决方案中添加应用程序使用的每个 Lib 的项目,在其中添加包含其头文件的文件夹,Additional Include Directories并添加对直接使用的项目的引用。

前任。对于 AppA,我会;

  1. 包括LibA、LibCommon、LibX和LibY的项目;
  2. Additional Include Directories在属性中添加 LibA 和 LibCommon 的路径
  3. 在主应用程序中添加对 LibA 和 LibCommon 的引用,然后在 LibCommon 的项目中添加对 LibX 和 LibY 的引用。

我的第一个问题是:有没有办法只导入应用程序直接需要的库?(LibA 和 LibCommon)

我的第二个问题:有没有更好的方法来轻松管理 Visual Studio 2010 中的可重用代码?(这里是初级程序员!)

4

2 回答 2

1

您实际上并不需要包含这些库的项目。您只需要编译器的 .h 文件和链接器的 .lib 文件。我要做的是首先在一些固定的目录结构中组织 libs 项目。然后,我会在 LibCommon.h 中添加一些类似的内容:

#include "LibXDir/LibX.h"
#include "LibYDir/LibY.h"
#ifdef _DEBUG
#pragma comment (lib, "LibCommon.lib")
#pragma comment (lib, "LibXDir/Debug/LibX.lib")
#pragma comment (lib, "LibXDir/Debug/LibY.lib")
#else
#pragma comment (lib, "LibCommon.lib")
#pragma comment (lib, "LibXDir/Release/LibX.lib")
#pragma comment (lib, "LibXDir/Release/LibY.lib")
#endif

有了这个,你只需要在你的应用程序中包含 LibCommon.h,它会负责引入其余的库。您可能需要设置额外的包含和库目录,具体取决于您的设置。或者,您可以将所有 .lib 文件创建或复制到某个中央 lib 目录,这可能是您必须添加的唯一 lib 目录。

我假设您在处理应用程序时不会修改库。如果是,则必须在更改库后重新创建库,这可以通过将其项目添加到解决方案中来完成。但是您仍然可以将大多数依赖项设置在单个文件上,而不是在项目设置上。

于 2012-06-22T20:10:47.630 回答
1

只需添加@eran 发布的正确答案:

您可以在属性中包含路径,属性-> 配置属性-> VC++ 目录-> 包含目录。您可以在属性中包含库路径,属性-> 配置属性-> VC++ 目录-> 库目录。

于 2013-04-17T15:32:56.170 回答