如何指定远程预处理器包括像192.0.2.17://usr/include这样的路径

问题描述 投票:2回答:3

是否可以指定远程预处理器服务器的C / C ++包含路径?

这里的重点是拥有头文件的中心位置。这使得升级,版本一致性和许多其他事情比包括不同版本的事物的所有人都好得多。

最小,完整和可验证的示例

典型包括。在Linux上,默认为/usr/include/之类;在Windows VS中,到$(IncludePath)变量中指定的位置。

#include <iostream>
int main() {
    std::cout << "hello, world" << std::endl;
    return 0;
}

现在假设我们将include路径设置如下:

C_INCLUDE_PATH=192.0.2.17://usr/include;/usr/include;

以上将首先检查192.0.2.17的远程服务器,看看是否存在iostream库。如果做不到这一点,将检查/usr/include

这有点夸张地说明了这一点:

#include <192.0.2.17://iostream>

int main() {

    std::cout << "hello, world" << std::endl;

}

谢谢,基思:^)

c++ c include remote-access preprocessor
3个回答
2
投票

既然你想要版本控制,你可以使用git(就像数以千计的其他项目一样)。因此每个用户都有所需的任何东西的本地克隆。

回答原来的问题:不,我不知道任何支持这种包含方案的预处理器。


1
投票

我不知道任何编译器远程检索包含文件或库,所以这不是你可以直接做的事情。

您可以做的最好的事情是在可以挂载的NFS共享上具有这些依赖关系,然后将该路径添加到包含路径。


1
投票

我不会在这样的代码中引用这个,并且正如dbush所说,你必须增强预处理器。

但是在Make系统中可能有一些可爱的方法可以做到这一点。也就是说,如果您正在使用Make(例如),则可以向Makefile添加强制刷新数据的步骤。

但是,我建议这是错误的,因为它不仅仅是需要新鲜的包含文件。如果包含已更改,相关代码可能也已更改,您也需要进行更改。你的魔法#include东西不会做任何事情来确保人们拥有包含所需的正确代码/库。

我不确定为什么正确使用源代码存储库还没有为您处理这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.