是否可以指定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东西不会做一些事情来确保人们拥有适用的代码/库。
我不确定为什么正确使用源代码存储库还没有为您处理。