如何解决在我自己的开源项目中使用经过修改的仅C ++标头的库的通常方法是什么?
我想在自己的开源项目中使用经过修改的C ++头文件库,但不确定执行此操作的通常方法。
例如,要在项目中使用原始头文件库“ CUB”,我只需要:
- download CUB
- 在我的源文件中包括“ umbrella”头文件
- 在编译文件中指定我的计算机中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
添加到您的包含路径中,以便轻松包含其头文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。