为了能够通过多个应用程序重用代码段,我决定创建我经常需要的函数/类的静态库。因此,我可以更改静态库的代码,并且引用该库的所有应用程序都具有更新的功能。
架构概念上如下图所示:
AppA -> LibA
\
-> LibCommon -> LibX
/ -> LibY
AppB
每个应用程序(AppA,AppB)都存在于不同的解决方案中,以便将内容清楚地分开。
为了在Visual Studio 2010中完全运行,我必须在其解决方案中添加应用程序使用的每个Lib的项目,在Additional Include Directories
中添加包含它的头文件的文件夹并添加引用到项目直接使用。
实施例。对于AppA,我会;
Additional Include Directories
属性我的第一个问题是:有没有办法只导入应用程序直接需要的库? (LibA和LibCommon)
我的第二个问题:是否有更好的方法可以轻松管理Visual Studio 2010中的可重用代码? (初级程序员在这里!)
答案 0 :(得分: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,它将负责引入其余的libs。您可能必须设置其他包含和库目录,具体取决于您的设置。或者,您可以将所有.lib文件创建或复制到某个中心lib目录,这可能是您必须添加的唯一lib目录。
我假设您在处理应用程序时不会修改lib。如果你是,你将不得不在更改后重新创建库,这可以通过将他们的项目添加到解决方案来完成。但是,您仍然可以在单个文件上设置大多数依赖项,而不是在项目设置上。
答案 1 :(得分:1)
只需添加@eran发布的正确答案:
您可以在属性中包含路径,属性 - >配置属性 - > VC ++目录 - >包含目录。 您可以在属性中包含库路径,属性 - >配置属性 - > VC ++目录 - >库目录。