我对具有许多依赖项的decent-sized C++ project做出了贡献。问题是,项目包含所有依赖项的来源(例如pcre,zlib等)。我想将项目缩减为与程序本身相关的内容。是否有一些相对标准的方法来编译这些库并将它们放置在某个地方,并使它们的头文件也易于访问?

对于它的值(value),我正在使用Windows 7,并且正在使用VS2005进行开发。我也是在Windows上处理大型C++项目的完全菜鸟。我从来没有真正需要跳出标准库和Win32。

最佳答案

我们在工作场所使用的一种结构是有一个“外部”文件夹,其中包含用于标题和外部Lib的“包含”和“Lib”文件夹。但是,由于我们也使用VS,因此我们尝试尽可能多地使用其“依赖项”功能,从而消除了对链接器的手动输入。这意味着只有不在同一解决方案下的项目才能进入“外部”文件夹。另外,由于我们有一些特定于某些项目的第三方库,因此我们在项目文件夹中为这些包含和库创建了文件夹。它是这样得到的:

。\
| -Project1\->包含Project1.vcproj
| -Project2\->包含Project2.vcproj
| |-第三方\
| |-包括\
| |-库\
|-外部\
| |-包括\
| |-库\
| -InternalLibrary\->包含InternalLibrary.vcproj
| -Solution.sln->包含vcproj,并根据需要将其链接

我无法确定这是否是有史以来最好的结构,但是所有内容都在源代码控制之下,我们可以仅通过构建解决方案来进行夜间构建,而开发只能通过构建单个项目进行。

关于c++ - 我应该在哪里放置第三方库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3605484/

10-09 18:45