繁体   English   中英

在我自己的开源项目中使用修改后的 C++ 头文件库的常用方法是什么?

[英]What is the usual way to use a modified C++ header-only library in my own open source project?

我想在我自己的开源项目中使用修改后的 C++ 头库,但不确定通常的做法是什么。

例如,要在我的项目中使用原始头库“CUB”,我只需要:

  1. 下载小熊
  2. 在我的源文件中包含“umbrella”头文件
  3. 在编译文件中指定我电脑中cub所在位置的路径

但是,在cub中修改了一些源文件(少于五个文件) ,想在我的项目中使用修改后的CUB。 当然,我可以简单地将编译文件中的路径更改为我本地计算机上修改后的库的位置。 但我不知道如何在 GitHub 上以开源项目的形式展示这一变化。

我能想到的唯一方法是让其他用户下载我的项目和修改后的头库,但我觉得这是一种丑陋的方式,尤其是当其他用户已经在他们的计算机中下载了原始库用于其他用途时。

我是 C++ 新手,所以任何与 C++ 头库和模板库相关的解释都将不胜感激。

您似乎认为应该将库与项目分开,但您不应该这样做。

如果您要修改 CUB 并在您的项目中使用这个修改后的版本,您应该将其作为您项目的一部分。 例如,您可以将其放入项目目录内的3rd-party文件夹中。 为了使您自己的更改可见,您还可以在存储库中创建一个子模块:

mkdir '3rd-party'
cd '3rd-party'
git submodule add cub-forked
cd cub-forked
// copy CUB files into cub-forked
git submodule set-url "URL_of_your_cub-forked_on_GitHub

这样,当人们访问您的主存储库时,他们也可以导航到您在 GitHub 上修改的cub-forked存储库。

您可以将3rd-party/cub-forked到包含路径中,以便轻松包含其头文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM