在每个平台上包含来自同一文件的 header
Including header from the same file on every platform
我有一个文件 cpp-options.txt
,我在其中编写了用于编译 C++ 程序的每个编译器选项。
我有 made an alias g+
作为 g++ @/path/to/cpp-options.txt $*
,所以每当我从我计算机上的任何地方调用 g+ prog.cpp
时,程序都会使用所有编译器选项进行编译从那个文件。
现在我想添加另一个选项,它在选项文件中包含一个 header 文件 header.h
。此文件始终保存在与 cpp-options.txt
文件相同的目录中。
所以,现在 cpp-options.txt
文件看起来像这样 -:
-Wall -Wextra.....
-include /path/to/header.h
现在,此设置在 Windows 上完美运行,但在 Linux 上无法运行,因为 Linux 上的选项文件的绝对路径如下所示 -:
/mnt/media......../absolute/path/to/header.h
因此,编译器会抱怨 Linux 上没有任何此类文件。
现在我知道这个问题的一个解决方案,那就是将保存这两个文件的文件夹包含在两个操作系统的 PATH
环境变量中,然后简单地写 -:
-Wall -Wextra.....
-include header.h
但是,我不想污染 PATH 变量。
还有其他方法可以做到这一点吗?
我能做的最好的事情就是创建另一个通用文件 cpp-options-common.txt
,其中仅包含编译器选项(-Wall、-Wextra、-std=c++14 等),然后将 -include /path/to/header.h
语句到 cpp-options.txt
文件。
此外,我使用 @
GCC 编译器指令将 cpp-options-common.txt
文件导入到 cpp-options.txt
文件中。
我的最终配置-:
cpp-options-common.txt -:(位于Windows分区)
-Wall -Wextra -Wfatal-errors ...
上Windows-:
cpp-options.txt-:
@path/to/cpp-options-common.txt
-include path/to/header.h
Linux -:
cpp-options.txt-:
@/media/Data/path/to/cpp-options-common.txt
-include /media/Data/path/to/header.h
我有一个文件 cpp-options.txt
,我在其中编写了用于编译 C++ 程序的每个编译器选项。
我有 made an alias g+
作为 g++ @/path/to/cpp-options.txt $*
,所以每当我从我计算机上的任何地方调用 g+ prog.cpp
时,程序都会使用所有编译器选项进行编译从那个文件。
现在我想添加另一个选项,它在选项文件中包含一个 header 文件 header.h
。此文件始终保存在与 cpp-options.txt
文件相同的目录中。
所以,现在 cpp-options.txt
文件看起来像这样 -:
-Wall -Wextra.....
-include /path/to/header.h
现在,此设置在 Windows 上完美运行,但在 Linux 上无法运行,因为 Linux 上的选项文件的绝对路径如下所示 -:
/mnt/media......../absolute/path/to/header.h
因此,编译器会抱怨 Linux 上没有任何此类文件。
现在我知道这个问题的一个解决方案,那就是将保存这两个文件的文件夹包含在两个操作系统的 PATH
环境变量中,然后简单地写 -:
-Wall -Wextra.....
-include header.h
但是,我不想污染 PATH 变量。
还有其他方法可以做到这一点吗?
我能做的最好的事情就是创建另一个通用文件 cpp-options-common.txt
,其中仅包含编译器选项(-Wall、-Wextra、-std=c++14 等),然后将 -include /path/to/header.h
语句到 cpp-options.txt
文件。
此外,我使用 @
GCC 编译器指令将 cpp-options-common.txt
文件导入到 cpp-options.txt
文件中。
我的最终配置-:
cpp-options-common.txt -:(位于Windows分区)
-Wall -Wextra -Wfatal-errors ...
上Windows-:
cpp-options.txt-:
@path/to/cpp-options-common.txt
-include path/to/header.h
Linux -:
cpp-options.txt-:
@/media/Data/path/to/cpp-options-common.txt
-include /media/Data/path/to/header.h