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



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

这里的重点是曾经有一个中心位置的标题文件。这会构成升级,版本的一致性和许多其他事情要比运行所有愿意(包括不同版本的事物)的人要好得多。

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

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

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

现在想象我们将包括路径设置为:

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;
}

谢谢,基思:^)

因为您想要版本控制无论如何您可以只使用git(就像其他数千个项目一样)。因此每个用户都有所需的本地克隆。

回答原始问题:不。我不知道有任何支持此类方案的预处理器。

我不知道检索文件或库的任何编译器,因此这不是您可以直接做的事情。

最好的方法是将这些依赖关系在NFS共享中您可以安装,然后将该路径添加到包含路径中。

我不会在这样的代码中对此进行引用,正如dbush所说,您必须增强预处理器。

,但是可能有可爱的方法可以在制造系统中进行此操作。也就是说,如果您使用的是(例如),则可以在迫使数据刷新的makefile中添加步骤。

但是,我建议这是错误的,因为它不仅是需要新鲜的文件。如果包含已更改,相关代码也可能发生了变化,您也需要这些更改。您的魔术#include东西不会做一些事情来确保人们拥有适用的代码/库。

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

最新更新