C++ 在include中使用定义的值

C++ 在include中使用定义的值,c++,c,compilation,c-preprocessor,C++,C,Compilation,C Preprocessor,我有如下#包括文件结构: #include <core/mod1/file1.hpp> #include <core/mod1/file2.hpp> #include <core/mod1/mod2/.../modN/fileN.hpp> 但它没有做到这一点:core/mod1/file1.hpp被包括在内,而不是core\u new/mod1/file1.hpp。 有办法实现吗?您可以尝试从core\u新建到core的符号链接。例如,在*nix机器中使用l

我有如下
#包括
文件结构:

#include <core/mod1/file1.hpp>
#include <core/mod1/file2.hpp>
#include <core/mod1/mod2/.../modN/fileN.hpp>
但它没有做到这一点:
core/mod1/file1.hpp
被包括在内,而不是
core\u new/mod1/file1.hpp

有办法实现吗?

您可以尝试从core\u新建到core的符号链接。例如,在*nix机器中使用
ln
命令

ln -s /path/to/core_new /path/to/core
这不会创建副本,而是创建一个指向core_new的链接,名为core

您还可以在符号链接之前将core的内容移动到另一个文件夹

mv /path/to/core /path/to/core_old

您可以尝试创建从core_new到core的符号链接。例如,在*nix机器中使用
ln
命令

ln -s /path/to/core_new /path/to/core
这不会创建副本,而是创建一个指向core_new的链接,名为core

您还可以在符号链接之前将core的内容移动到另一个文件夹

mv /path/to/core /path/to/core_old

希望使用文件系统,而不是C++编译器。创建一个新目录,并将所有源文件复制/链接到那里。将编译器中的
-I
选项更改为使用此新目录。当然,将新文件放在新的
core
目录中。这种方式不需要编辑单个源文件/头文件。

您想要使用文件系统,而不是C++编译器。创建一个新目录,并将所有源文件复制/链接到那里。将编译器中的
-I
选项更改为使用此新目录。当然,将新文件放在新的
core
目录中。这样,您就不需要编辑单个源/头文件。

您是否考虑过改为设置包含路径<代码> > C++ > Icore < /COD> VS >代码> C++ + ICODEX新< /COD>并使用ALASE <代码> >包含?考虑一个大的替换(它可能是一个定义良好且易于指定的模式来替换)…或者考虑在核心和CeeLeNew之间定义一个符号链接……基本上我想要避免修改所有的源……注意:可以建立一个包含文件名的字符串,该代码包含< <代码> > < <代码> >但是,这仍然需要你改变所有的<代码>包含< /Cord>行来使用构建的字符串。是否考虑改为设置include路径<代码> > C++ > Icore < /COD> VS >代码> C++ + ICODEX新< /COD>并使用ALASE <代码> >包含?考虑一个大的替换(它可能是一个定义良好且易于指定的模式来替换)…或者考虑在核心和CeeLeNew之间定义一个符号链接……基本上我想要避免修改所有的源……注意:可以建立一个包含文件名的字符串,它包含< <代码> > />代码>但是,这仍然需要你改变所有的<代码>包含< /Cord>行来使用构建的字符串。这会奏效的。另一个问题是我不能更改任何编译选项。你不能更改编译源代码吗?这是怎么可能的我知道这听起来难以置信:)但这是一个非常大的项目,我不是唯一的业主。是的,这会管用的。另一个问题是我不能更改任何编译选项。你不能更改编译源代码吗?这是怎么可能的我知道这听起来难以置信:)但这是一个非常大的项目,我不是唯一的业主。