gpt4 book ai didi

c++ - 将 "third party" header 包含到 C++ 项目的最佳方法是什么

转载 作者:行者123 更新时间:2023-11-30 03:09:48 28 4
gpt4 key购买 nike

我正在构建一堆 Windows 库(主要是简单的包装器来组合来自 API 和第三方库的功能),以供稍后具有非常相似要求的应用程序集使用。

大多数库都依赖于另一个库,所有库都依赖于一个公共(public)库。这个公共(public)库包含相当多的头文件,这让我很头疼。

我希望能够从版本控制中 check out libraryA 并准备好编译,而无需拉出 libraryA 所依赖的 libraryCommon 或 libraryB。我能想到的唯一方法是将所有数百个 header 从公共(public)库复制到所有库,但这是一种丑陋的解决方案。

那么将“第三方”头文件存储到您的 C++ 项目中的最佳方式是什么?是否存在诸如头文件库/包之类的东西?

我目前正在使用 Visual Studio 2008,但我想要一些更标准的 C++ 解决方案。

最佳答案

如果库是特定于项目的,您需要将库安装在一个众所周知的位置(/project/$FOO/或 D:\projects\$FOO)并将版本号添加到目录 因为迟早你会支持一个开发主干和几个正在生产中的旧版本,只需要偶尔修复。

因此,创建:

  • /project/$FOO-1.00
  • /project/$FOO-1.05
  • /project/$FOO-1.80

然后在使用这些库的实际项目的 makefile 中,指向要使用的正确版本。引用源代码中的 header 时,请勿将目录名称与版本一起使用。

不是这样的:

#include <$FOO-1.05/base.h>

但是像这样:

#include <base.h>

因为你不想在更新库时接触所有的源代码。

关于c++ - 将 "third party" header 包含到 C++ 项目的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3812927/

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