gpt4 book ai didi

c++ - 在其他静态库中引用静态库 (Visual Studio 2010)

转载 作者:行者123 更新时间:2023-11-30 04:27:01 25 4
gpt4 key购买 nike

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

架构在概念上看起来像下图:

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 中的可重用代码? (这里是初级程序员!)

最佳答案

您真的不需要包含这些库的项目。您只需要编译器的 .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 目录。

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

关于c++ - 在其他静态库中引用静态库 (Visual Studio 2010),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11162789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com