C++包含来自Internet



我想包含一个来自internet的标头。例如:文件add.h和add.cpp已经发布到github.com

文件add.h是int add(int a,int b);

文件add.cpp是int add(int a,int b){返回a+b;}

在我的main.cpp中,我想要这样的代码

#include "github.com/xxx/add.h"
int main(){
int a = add(1,1);
}

编译开始时,编译器可以从github.com 自动下载add.cpp

这会发生吗?

不,这不会发生(假设您没有使用某种获取机制)。预处理器使用#include指令只包含本地文件。

C++不像Go或Javascript那样工作

托管在github上的文件应该使用git签出,然后使用。

我建议在继续之前阅读C++和Git书籍(或您的编译器/构建系统手册以添加额外的获取步骤)

C++本机不支持该功能。你必须自己建造。

你可以在你的构建系统中添加一个额外的步骤,即

  1. 解析源代码中包含的内容,如上面示例中的内容
  2. 下载include文件(以及以某种方式所需的*.cpp
  3. 生成引用下载文件的源代码的更新版本
  4. 然后像往常一样继续构建

这是大量的工作

最好研究一下CMake的ExternalProjects。这个功能可以下载、构建和安装依赖项,这样你的项目就可以使用它。当然,也有其他技术(@comments请添加你的收藏夹)。

更新:(感谢@Angew)

从技术上讲,C++没有指定如何处理#include指令的参数。这是所有已知的编译器;本机不支持此功能;而不是C++本身。支持这一点的编译器可以完全符合标准。

相关内容

  • 没有找到相关文章

最新更新