如何将web服务器上公共目录中的C++文件直接包含到IDE中

How to Include a C++ file from a public directory on a web server directly to the IDE?

本文关键字:文件 C++ IDE 包含 web 服务器      更新时间:2023-10-16

概述:在web编程中,外部代码文件不必在同一目录中,甚至不必在相同的计算机中。例如,我可以使用:

<script src="file.js"></script>

以包含来自同一目录的file.js。或

<script src="https://www.domain.com/file.js"></script>

以包含来自web服务器的file.js。

目前,我正在GitHub上编写一个C++库(它只是一组轻量级C++文件(,我希望每个人都可以直接使用它,即使不需要手动保存;我希望预编译器管理临时下载。不幸的是,以下代码不起作用:

#include "https://www.domain.com/file.h"

注意:问题是一个">如何?"而不是"是否可能?>",如果你认为这是不可能实现的,我认为你无法证明你的答案;所以,请不要回答。否则,所有解决方案都会受到赞赏

让我们抛开这是否是个好主意的问题。这有可能吗?这就是标准对#include指令的描述:

C++14标准,16.2/2[cpp.include]

表单的预处理指令

#包括<h-char-序列>新线

在实现定义的位置序列中搜索由指定的唯一标识的标头在<并且>分隔符,并导致用整个内容替换该指令收割台的。如何指定位置或确定标题是实施的定义。

"h-char序列"允许来自源字符集的字符:

2.3[lex.charset]

a b c d e f g h i j k l m n o p q r s t u v w x y z

A B C D E F G H I J K L M N O p Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9

_{}[]#((<gt;%:;.?*+-/^&|~!=,\"'

该措辞中没有任何内容说明所包含的文件必须位于物理位置。此外,还允许使用有用URI所需的所有字符。

问题

据我所知,没有一个C++编译器,当然三大编译器(Clang、GCC、MSVC(都没有实现这个功能。

Todo

依赖额外的工具是行不通的。在这种情况下,仅仅克隆有问题的存储库是一项过于简单和熟悉的任务。

因此,以下是您必须做的:

  • 将源代码提供给相关编译器,实现对#include的URI支持(别忘了缓存或编译时间会很慢(,并将其作为相应编译器的官方功能接受。

  • 在相关构建系统中实施支持。首先,我建议至少使用make、CMake和GNU Autotools。

  • 做大量的市场营销来说服C++社区使用这个功能。